解决MYSQL数据库的多对多关系

时间:2013-04-02 13:14:00

标签: php mysql database many-to-many

我有3张桌子,

用户(id),用户产品(user_id,product_id)和产品(id)。

当用户添加产品时,他们的user_id和product_id保存在USERPRODUCT表中。

现在,同时另一个用户可以保存产品(有点像“设置为收藏”),我需要保存保存它的用户的user_id和产品的product_id。这将创建另一个表(称之为收藏夹),但是这个表也解决了“users”表和“product”表之间的多对多关系。

问题:是否可能有2个表解决多对多关系,或者有其他方法可以解决我的问题。

如果有可能,将如何在ER图中绘制这个

2 个答案:

答案 0 :(得分:0)

这取决于你想要什么。 您可以只使用一个表并使用布尔字段设计您的关系 USERS(ID) 产品(ID) USERPROD(userid,productid,isbought,isfavorite,isowned)

或者您可以使用一个多对多支持表来确定每个关系

也许您希望PRODUCTS表中的另一个字段“owner”存储用户ID。这是一对一的关系

答案 1 :(得分:0)

你想要做的是实际描述用户和产品之间的关系:最喜欢的,或者他'拥有'它。
只需在定义关系的userproduct表中添加其他字段:favoriteowned