我有兩個實體訂單och托盤。 訂單有主鍵ID。 托盤也有一個主鍵palletID。 我們有0..1在訂購sider和*托盤一側。 我應該如何將其轉換爲數據庫中的表格?轉換ER到關係
轉換ER到關係
回答
要模型,其中一個訂單可以具有零個或多個貨盤的情況下,和一托盤可以與0或1單相關聯:
規格化:
orders
------
orderId (PK)
pallets (e.g. palletA, palletB, palletC, ...) <--- horrible compound field
pallet
------
palletId (PK)
把非規格化表中的第二通過將FK添加到多對0或1關係的many
一側,並從1
一側刪除複合字段。
orders
--------
orderId
pallets
--------
palletId
orderId (FK)
在該模型中,每個托盤引用的命令(或者它的零),以及許多托盤可以引用相同的順序。
另一種選擇是使用連接表。這可以實現訂單和托盤之間的多對多關係,並將關係建模與訂單和托盤數據分開。
orders
--------
orderId (PK)
pallets
--------
palletId (PK)
orderspallets
-------------
orderId (FK)
palletId (FK)
* * 0..1的情況 – user2975699
我不確定這是什麼意思。如果您選擇第一個模型,那麼訂單可能有0個或更多個托盤,托盤可能與0個或1個訂單相關聯。如果您想查找訂單的所有貨盤'select o.orderId,則訂單中的p.palletId將o.orderId = p.orderId'上的貨盤連接起來。如果您想包含沒有托盤的訂單,請將其作爲「左連接」。如果您想查找與任何訂單都沒有關聯的貨盤,請執行'從orderId爲空的貨盤中選擇*。 – deanosaur
上面的第二個模型,使用'orderspallets'連接表將捕獲訂單和貨盤之間的任何關係。訂單可能有零個或多個托盤,托盤可能與零個或多個訂單相關聯。 – deanosaur
- 1. 轉換ER圖向關係模型
- 2. 將ER圖轉換爲關係圖
- 3. 將ER關係圖中的關係屬性轉換爲SQL
- 4. ER圖關係
- 5. ER圖 - 關係
- 6. ER到關係模式?
- 7. ER圖到關係模式
- 8. ER圖到關係謂詞
- 9. ISA關係ER圖
- 10. 關係在ER圖
- 11. ER-關聯關係表
- 12. 將ER圖轉換爲UML:關係屬性和管理兩個關係集
- 13. 一到ER圖許多關係
- 14. ER到關係映射創建statments
- 15. 從ER轉換到關係數據庫 - 映射實體類型不足
- 16. ER模型中的關係
- 17. 關係模式ER圖
- 18. 轉換關係到BCNF
- 19. 轉換ER圖到SQL代碼
- 20. ER圖到數據庫轉換
- 21. 將ER轉換爲SQL DDL
- 22. sql:將ER圖轉換爲關係映射(多值屬性?複合屬性?)
- 23. 「將ER圖轉化爲最小關係集」是什麼意思?
- 24. 在ER建模中的自我關係
- 25. ER模型中的關係混淆
- 26. SQL服務器ER關係圖
- 27. 是ER圖中的一種關係
- 28. ER圖中的關係屬性
- 29. 轉換SQL到關係代數
- 30. 轉換SQL到關係代數例
你有兩個表訂單和托盤。每張桌子都有唯一的ID,托盤和訂單之間有多對一的關係? – deanosaur
*到0..1的關係 – user2975699