我有两个表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上做这件事的方法。
发布于 2013-05-10 20:45:06
您需要有一个多对多的关系表
User_Favorite UserId FavoriteId
这两个ids将构成一个复合主键。并且每个都是它们所关联的表的外键。
发布于 2013-05-10 20:43:29
您需要创建第三个多对多关系表,该表将包含:
User_ID,Favourite_ID
从本质上讲,你想要一个多对多的关系:一个用户有零到多个收藏。一个收藏夹对许多用户都是零。正确的方法是使用第三个表,该表由引用两个主要表(user_id、favouriablete_id)的外键组成。您可以从用户表中删除收藏夹列。不建议使用分隔列表来替换多对多。
发布于 2013-05-10 20:43:33
你必须为用户创建3个表,第一个是用户第二个,第三个是用户和最喜欢的关系。因此,第一个表将是
ID|Name
1 | tom
2 | max
3 | john第二个表将保持原样
第三个表将是
id|nameid|favouriteid
1|1 |1
2|1 |2https://stackoverflow.com/questions/16482507
复制相似问题