MySQL 关系 : Bid with products and users

标签 mysql database data-modeling

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

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

enter image description here

最佳答案

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

这表明用户和产品之间存在关系(出价)。您可以将其命名为 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 可以标记每个产品的出价顺序,就像本例中的拍卖)。我认为这由你决定。

识别关系:

Bid table with identifying relationships


非识别关系:

Bid table with non-identifying relationships

关于MySQL 关系 : Bid with products and users,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9447557/

相关文章:

c++ - 桌面应用程序的嵌入式数据库问题

MySQL 复制用户

database - Vertica 中的最大列数和列长度?

powerbi - Power BI::这是有效的星型架构吗?

mysql - NONCLUSTERED 索引命令 (MySQL) 在 MySQL 或 Workbench 中不可用

mysql - 选择最大值错误

database - 规范覆盖和最小覆盖之间的区别

sql - 推进 ORM : How to use own brackets in where clause

php - 通过 html 表单保存到 MySQL 数据库

sql - 帮助建立数据库