我想创建一个关系数据库,其中有两个表Users和products。每个表的每个项目都可以与第二个表格的许多项目相关联。
我目前的实施如下:
两个主要表格 -
->Users
User ID
UserInfo
->Products
Product ID
ProductInfo
两个不同的查找表
->UserToProduct
UserID
ProductID
->ProductToUSer
ProductID
UserID
每次添加从用户到产品的关系时,我只需在第一个查找表中添加一行,反之亦然。
这是正确的方法吗?我可以参考这些场景的标准模型吗?
答案 0 :(得分:3)
您不需要两个查找表,只需users_products
即可。至于资源,有数以万计,只需google “数据库多对多”。
<强>更新强>
考虑这些数据:
products
------------
id info
------------
1 car
2 flute
3 football
users
------------
id info
------------
10 bob
20 tim
30 manning
现在,作为一个简单的例子,让我们说 manning 拥有足球和汽车。让我们说 tim 拥有长笛和足球。现在这是你的查找表:
users_products
----------------------
user_id product_id
----------------------
20 2
20 3
30 3
30 1
就是这样。现在你可以进行诸如“给我所有拥有汽车的用户”,或“给我所有用户拥有的汽车”等查询,等等。
干杯
答案 1 :(得分:1)
您确实不需要或不需要两个不同的查找表。你应该只有一个(你的表,UserToProduct或ProductToUser,没关系)。查找表的主键应该是由ProductID和UserID组成的组合键。