我有两个实体订单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到关系映射创建statments
- 13. 从ER转换到关系数据库 - 映射实体类型不足
- 14. 关系模式ER图
- 15. 转换关系到BCNF
- 16. 转换ER图到SQL代码
- 17. 将ER转换为SQL DDL
- 18. sql:将ER图转换为关系映射(多值属性?复合属性?)
- 19. “将ER图转化为最小关系集”是什么意思?
- 20. 在ER建模中的自我关系
- 21. 将ER图翻译为关系模型
- 22. 是ER图中的一种关系
- 23. ER图中的关系属性
- 24. ER模型中的关系混淆
- 25. 转换SQL到关系代数例
- 26. 转换梁2关系到Rails 4
- 27. 转换SQL到关系代数
- 28. ER模型和关系模型中实体和关系的关系?
- 29. Spark中的关系转换
- 30. 无法ER图转换成XML
你有两个表订单和托盘。每张桌子都有唯一的ID,托盘和订单之间有多对一的关系? – deanosaur
*到0..1的关系 – user2975699