有人可以检查我的 ERD,因为我不知道我做得是否正确。我不确定强实体和弱实体之间的区别,我确定强实体有自己的主键。
除此之外,我需要将 Payment_ID 作为订单表中的外键是否正确?以及我的订单表中还可以有哪些其他属性
也许有一些关于在我的 ERD 上添加或改进内容的建议。这里有我的 ERD 的图像。谢谢你
PAYMENT
有一个 ORDER_ID
并且 ORDER
有一个 PAYMENT_ID
。拥有这两个字段是多余的,我会删除 ORDER.PAYMENT_ID
,如果客户不立即付款,这将是一个可为空的字段。
ORDER_DETAILS
需要 PK,可以是代理键 ORDER_DETAIL_ID
或 ORDER_ID, ITEM_ID
的组合。
一个
PAYMENT
可以只使用一个还是多个COUPON
?鱼尾纹线上的基数表示不止一个,但 PAYMENT.COUPON_ID
字段只允许一个。 PAYMENT_ID
表中可空的 COUPON
会是更好的选择。
您有一些可疑的最小基数。一个
CUSTOMER
必须至少放置一个 ORDER
?好吧,我可以接受。一个 EMPLOYEE
必须至少有一个 ORDER
?所以公司里的每个人都必须接受命令,而在员工接受命令之前你不会记录他们吗?另外,每个ITEM
都必须在ORDER_DETAILS
中引用?您不想在订购之前记录所提供的商品吗?
最后,关于术语的说明:您的图最好称为表格图,而不是 ERD。要称为实体关系图,图必须区分实体关系模型的概念。您使用的图表样式无法区分实体集(即 ID 字段)与值集(非 ID 字段)或实体关系(具有单字段 PK 的表)与关系关系(具有复合 PK 的表,即
ORDER_DETAILS
是关系关系)。
+--------------------+ +--------------------+ +-------- ----------+
| 客户| | 订单| | 产品 |
+--------------------+ +--------------------+ +-------- ---------+
|客户 ID (PK) | <---- | Order_ID (PK) | +--> |产品 ID (PK) |
|名称 | |订单_日期 | | |产品名称 |
|联系我们 | |订单状态 | | |产品类别|
|在线商店网站 | |客户 ID (FK) | | |产品_指南|
+--------------------+ +--------------------+ | +-----------------+
| Tracking_ID (FK) |
+------------------+ |
| |
+-----------------+ |
| 追踪 | |
+-----------------+ |
| Tracking_ID(PK)| |
|追踪号码 | |
|追踪网站 | |
+-----------------+ |
|
|
+----------------------+
| 订单_产品 |
+----------------------+
|订单 ID (FK) |
|产品 ID (FK) |
|数量(可选)|
|价格(可选)|
+----------------------+