两个SQL表之间的多对多关系?

3

我有两个表tbl_user和tbl_favItems,如下所示:

 +-----+----------+          +-----+----------+
 |  ID |   Name   |          | ID  |   Name   |
 +-----+----------+          +-----+----------+ 
 |  1  |  Johan   |          |  1  |  Movies  |
 |  2  |  Peter   |          |  2  |  Food    |
 |  3  |  Kevin   |          |  3  |  Mobiles |
 |  4  |  Harry   |          |  4  |  Sports  |
 +-----+----------+          +-----+----------+
     User Table                 Fav. Table

我需要一些逻辑,例如:假设 Johan 喜欢 Movies, Mobiles,而 Peter 喜欢 Food, Mobiles, Sports 等等。在这种情况下,如何将 fav.ID 1,3 关联到 Johan,并将 fav.ID 2,3,4 关联到 Peter 在表格中?这可能吗?
我需要一些线索来继续前进。提前致谢。

永远不要将数据存储为逗号分隔的项。这只会给你带来很多麻烦! - jarlh
你需要一个关系表(user_fav),其中包含id_user和id_fav,用户可以存储多个收藏。 - Roy Bogado
1
创建第三个表格,包含user_id和fav_id。每个用户将拥有与收藏夹一样多的行。你现在拥有的两个表格是第三个新表格的字典。 - Lelio Faieta
1个回答

6
这似乎是你的表之间的多对多关系,要关联你的表,请引入一个连接表,该表将保存这两个表的引用,例如

user_favourites

user_id(表1的主键)

item_id(表2的主键)

此表中的数据将如下所示

user_id item_id
1        1
1        3
2        2
2        3
2        4

关联实体


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接