【发布时间】:2013-03-31 20:36:14
【问题描述】:
我正在进行一项练习,为大学住宿办公室建模和实施数据库。
这是我目前的 ER 图:
规范说大厅有马槽,公寓有房间数量。否则属性相同。发票和地址需要有公寓或大厅的地址。
我应该将 flat 和 hall 实体存储在同一张表中吗?我怎么能让一个实体(地点)链接另外两个?
【问题讨论】:
标签: database-design entity-relationship
我正在进行一项练习,为大学住宿办公室建模和实施数据库。
这是我目前的 ER 图:
规范说大厅有马槽,公寓有房间数量。否则属性相同。发票和地址需要有公寓或大厅的地址。
我应该将 flat 和 hall 实体存储在同一张表中吗?我怎么能让一个实体(地点)链接另外两个?
【问题讨论】:
标签: database-design entity-relationship
在信息选项卡中查找以下标签:single-table-inheritanceclass-table-inheritanceshared-primary-key。
对于像您这样的简单情况,单表继承可能是您最好的选择。属性中会有一些 NULL 并不适用于所有行,但这应该不是主要问题。
对于复杂的情况,class-table-inheritance 效果更好,但需要做一些额外的工作。
共享主键是一种额外的技术,您可以将其与类表继承一起使用,以强制“is a”关系的一对一性质。
【讨论】: