Mysql

我創建實體關係圖的方式是否正確?

  • December 24, 2020

IS圖 據我了解,1)表客戶和表訂單應該有一對多的關係,因為客戶有訂單。2)餐桌訂單和餐桌付款應該有一對多的關係,因為一個訂單可以有多個付款。3)餐桌順序和餐桌傳遞應該有一個多對一的關係。它是否正確?我還缺少其他東西嗎?

設計取決於您的業務需求,但總的來說,這聽起來像是一個好的設計並且適用於上下文。

您可以考慮的一些非常小的事情如下:

  1. 在現實生活中,不同的人Customers在技術上可以生活在同一個地址,因此如果你規範化CustomerAddresses到他們自己的表,它會減少冗餘,理論上可以提高性能。
  2. 一些現實生活場景允許CustomerPayment相同的Order. 如果這永遠不會成為您系統中的案例,那麼您可以忽略它。但是,如果您可能想要支持該功能,那麼您需要更新和之間的關係OrderPayment以便它是一對多的
  3. 您可能要考慮將Order表拆分為兩個表OrderHeaderOrderLine. 那麼這兩個表之間會有一對多的關係,因為多行可以在同一個標題上。標頭將儲存一般訂單資訊,如 OrderId、OrderDate、OrderTime、CustomerId,但 OrderLine 表將為訂購的每種類型的項目有一個單獨的行,它將儲存 PizzaId 和 Quantity(以及任何其他特定資訊,例如自定義到訂購的項目)。

就目前的設計而言,您Customer每人只能訂購一種披薩Order。通過Order像上面那樣分成兩張桌子,他們可以在同一張桌子上訂購多種不同類型的比薩Order(甚至可以在以後出售的其他類型的物品,如奶酪麵包和蘇打水)。

引用自:https://dba.stackexchange.com/questions/282044