我有一张用户表(ID,FNAME,LNAME,INTERESTS,...)以及另一张表来保存他们可以选择的特定利益集:电影,电视,广播,舞台,站立。< / p>
他们可以有多个兴趣,那么如何将这些信息存储在Users INTERESTS的字段中呢?或者实现这一目标的最佳替代方法是什么?
答案 0 :(得分:7)
这是一种多对多的关系。您可以通过引入“连接表”来存储它们。
Table Users:
-----------
UserID PK
Name
...
Table Interests
-------
InterestID PK
Description.
....
User_interest
-----------
UserID PK, FK
InterestID PK, FK
答案 1 :(得分:4)
阅读MySQL书籍中的database normalisation。这是一个重要的主题,所以可能有一个很大的篇章。
简而言之,您删除interests
并最终使用第三个表结束,例如:
user_id | interest_id
--------+------------
1 | 1
1 | 2
2 | 1
3 | 4
这可以为您提供多对多的关系。
答案 2 :(得分:2)
对此最好的解决方案是使用3个表(第三个用于存储利益连接到用户):
user (id, name)
interest (id, description)
user_interest (user, interest)