1

我有一个 MySQL 数据库,其中一个表存储用户信息,另一个表存储每个用户的“标签”。结构是这样的:

表 1:用户信息

id | col1 | col2 | ....

表 2:标签

id | user_id | tag

大约有 25000 个用户,实际上每个用户会有 50 个标签,但理论上用户可以创建无限个标签。每个用户只能访问他/她创建的标签,因此我将其与表 2 中的 user_id 配对。

所以我的问题是我有一个好的结构,还是有更好的方法来做到这一点?(如果这不是问的正确地方,请告诉我,因为这不是直接的代码问题。)

4

1 回答 1

3

您还可以制作标签表和关系表以将用户表与标签表相关联。您将通过关系表在用户和标签之间建立多对多关系。

一个标签表:id、name 等 一个用户表:id、name 等 一个关系表:user_id、tag_id,外键绑定到 tag.id 和 user.id,以及 tag.id 和 user 上的 pk 。ID。

据我所知,这可能是最好的方法,每个标签有一行,每个用户有一行,用户和标签之间的每个关系都有一个表。

根据您在应用程序端使用的内容,您通常可以在模型之间建立一些简洁的关系 - 活动记录中的多对多场景或类似的东西,并使事情变得非常容易。

于 2013-05-10T02:57:04.033 回答