我有一个简单的网站,用户可以在其中对产品进行出价。该模型如下所示: 显然不同的用户可以出价,那么如何绘制“用户”表中缺失的链接?
我有点困惑是使用识别关系还是非识别关系。 更新:
最佳答案
您说:“...用户可以对产品出价。”
这表明用户和产品之间存在关系(出价)。您可以将其命名为 user_bids_on_product
或只是 bid
。
我会删除用户
和产品
之间的关系(除非它意味着其他东西,例如产品所有者)并统一您的出价
和 bids_has_product
放入一个表中:
user_bids_on_product
--------------------
product_id FK to product
user_id FK to user
price
(product_id, user_id)
不应该成为该表的主键,因为我们假设用户可以对某个产品多次出价。
您可以添加代理 id
并使其成为 PK,或添加 bid_number
列并使其成为化合物 (product_id, user_id, bid_number)
PK。您也可以将 (product_id, bid_number)
作为 PK(bid_number
可以标记每个产品的出价顺序,就像本例中的拍卖)。我认为这由你决定。
识别关系:
非识别关系:
关于MySQL 关系 : Bid with products and users,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9447557/