MySQL关系:与产品和用户竞价

时间:2012-02-25 20:00:58

标签: mysql database data-modeling

我有一个简单的网站,用户可以在该网站上对产品进行出价。该模型如下所示: enter image description here 显然不同的用户可以出价,那么如何将缺少的链接绘制到“用户”表?

我有点困惑是否使用识别或非识别关系。 更新:

enter image description here

3 个答案:

答案 0 :(得分:2)

您说:“... 用户可以对产品出价。

这表明用户和产品之间存在关系(出价)。您可以将其命名为user_bids_on_product或仅bid

我会移除userproduct之间的关系(除非它意味着产品的所有者之类的其他内容),并将您的bidsbids_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可以标记每种产品的出价顺序,就像这种情况下的拍卖一样)。我认为由你决定。

识别关系:

Bid table with identifying relationships


非识别关系:

Bid table with non-identifying relationships

答案 1 :(得分:1)

用户可以对产品进行一次出价;用户可以对多个产品出价;一个产品可以有多个出价;出价仅与单个产品相关联。

我认为您需要在用户和他们所做的投标之间建立关系。这是一对多的。

关于更新图表的另一个问题:用户是否会为产品分配评级,与投标方式大致相同?值得追踪吗?如果是,我会在用户和评级之间建立关系。

答案 2 :(得分:0)

简单的识别关系黑白用户和出价是有道理的,没有用户就不能存在出价。

它是一个简单的一对多关系,因为用户“has_many”出价。

相关问题