Dan*_*Dan 14 mysql database-design list
我有一个用户表(ID,FNAME,LNAME,INTERESTS,...)以及另一个表来保存他们可以选择的特定利益集:电影,电视,广播,舞台,站立.
他们可以有多个兴趣,那么我如何将这些信息存储在用户利益的字段中呢?或者,实现这一目标的最佳替代方法是什么?
这是一个多对多的关系.您可以通过引入"连接表"来存储它们.
Table Users:
-----------
UserID PK
Name
...
Table Interests
-------
InterestID PK
Description.
....
User_interest
-----------
UserID PK, FK
InterestID PK, FK
Run Code Online (Sandbox Code Playgroud)
在您的MySQL书中阅读有关数据库规范化的信息。这是一个重要的主题,因此可能有一章很长。
简而言之,您删除interests并最终得到第三个表,例如:
user_id | interest_id
--------+------------
1 | 1
1 | 2
2 | 1
3 | 4
Run Code Online (Sandbox Code Playgroud)
这为您带来了多对多的关系。
对此的最佳解决方案是使用 3 个表(第三个表用于存储兴趣与用户的连接):
user (id, name)
interest (id, description)
user_interest (user, interest)
Run Code Online (Sandbox Code Playgroud)
这称为数据库规范化。