我有两个表User和Favorite。
我想让User行拥有来自Favorite
的多个外键用户
ID|Name |favorite
1 | tom |1&2 ??? (tom likes cookie and donuts)
2 | max |2&3 ??? (max likes donuts and peanuts)
3 | john|1&2&3 ??? (john likes cookie, donuts and peanuts)
收藏
ID | name
1 |cookie
2 |donuts
3 |peanuts
什么样的结构最适合此目的? 我认为这个问题是基本的。 虽然,,,,,
我已多次制作外键结构我正在使用mysql 并且如果可能的话,想知道如何在doctrine2上做到这一点。
答案 0 :(得分:1)
您需要创建第三个多对多关系表,其中包含:
User_ID,Favourite_ID
基本上,您需要多对多关系:用户拥有零到多个收藏夹。最喜欢的用户数为零。执行此操作的正确方法是使第三个表由引用两个表原色的外键组成(user_id,favouriablete_id)。您可以从用户表中删除收藏列。不建议使用分隔列表来替换多对多。
答案 1 :(得分:1)
你必须创建3表第1表用户第2表示收藏,第3表表示用户和喜欢的关系。 因此,第一张表将是
ID|Name
1 | tom
2 | max
3 | john
第二张表将按原样
第三张表将是
id|nameid|favouriteid
1|1 |1
2|1 |2
答案 2 :(得分:1)
创建另一个名为UserFavorite
的表,然后在此处存储用户和收藏夹的Id
:
UserFavorite
UserId | FavoriteId
1 | 1
1 | 2
2 | 1
2 | 2
...
答案 3 :(得分:1)
您需要拥有多对多关系表
User_Favorite 用户身份 FavoriteId
这两个ID将构成一个复合主键。每个都是他们所涉及的表的外键。
答案 4 :(得分:1)
你需要一个多对多的关系。要做到这一点,你需要一个额外的表:user2favs或存储的东西:
ID|userid|favid
1 |1 |1
2 |1 |2
3 |2 |2
4 |2 |3
等等。