我有一个简单的网站,用户可以在该网站上对产品进行出价。该模型如下所示:
显然不同的用户可以出价,那么如何将缺少的链接绘制到“用户”表?
我有点困惑是否使用识别或非识别关系。 更新:
答案 0 :(得分:2)
您说:“... 用户可以对产品出价。”
这表明用户和产品之间存在关系(出价)。您可以将其命名为user_bids_on_product
或仅bid
。
我会移除user
和product
之间的关系(除非它意味着产品的所有者之类的其他内容),并将您的bids
和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
可以标记每种产品的出价顺序,就像这种情况下的拍卖一样)。我认为由你决定。
识别关系:
非识别关系:
答案 1 :(得分:1)
用户可以对产品进行一次出价;用户可以对多个产品出价;一个产品可以有多个出价;出价仅与单个产品相关联。
我认为您需要在用户和他们所做的投标之间建立关系。这是一对多的。
关于更新图表的另一个问题:用户是否会为产品分配评级,与投标方式大致相同?值得追踪吗?如果是,我会在用户和评级之间建立关系。
答案 2 :(得分:0)
简单的识别关系黑白用户和出价是有道理的,没有用户就不能存在出价。
它是一个简单的一对多关系,因为用户“has_many”出价。