答案 0 :(得分:1)
在我看来, ERD#1 是一个更好的设计。
<强>原因强>
订单/产品表将具有特定订单和订购的每个产品的订单ID 每个订单的该产品的数量。没有重复/没有冗余数据。
ERD#2
设计不佳,因为每个订单都可以有多个产品,您会这样做 为多个添加相同的orderid,CustomerID,Invoicedetails 同一订单的产品,简单来说就是更冗余的数据。
修改强>
ERD#2也违反了数据库规范化规则。在订单表中 你有InvoiceID然后Invoice_Creation_Date只依赖 在InvoiceID上。
规范化规则说明表中的列是否不直接依赖 在该列的主键上,它应该在一个单独的表中。在 换句话说,表中的所有列都应该直接依赖 仅限主键。
答案 1 :(得分:0)
答案 2 :(得分:0)
错误地写入ERD2,应从发票中删除外键Order_ID_FK。因此,发票应与订单有一对多的关系。