我有一个Supertype/Subtype关系,其中一个子类型没有任何属性,所以我不确定如何建模。我有一个名为Tracks的超类型,其中一个轨道可以是三个子类型之一,即音频,视频,文本。音频和视频子类型都具有特定的属性,因此将它们放在单独的表格中是有意义的。 Text子类型没有额外的元数据,所以我应该在一个单独的表中捕获它?超类型/子类型:数据建模
2
A
回答
2
如果你在你的父表中的型判别 ,那么你并不需要一个亚型表在所有 - 亚型将由型判别标识及其所有领域都已经在基地表。
否则,子类型表只会复制超级表的PK(没有附加字段)。
或者,你可以考虑采用"all types in the same table"策略来实现继承。
只需标识其列的类型的字段 - 即从一个“公知”和记录集获取其值通常的整数(或者如果枚举DBMS支持的话)。
1
只需在轨道表中添加一个名为tracktype的单独列。在这个专栏里存储音轨的类型,它是音频文本。 轨道表应包含所有类型的轨道信息,其中包含所有类型共有的属性,现在对于每种类型,您需要单独的表。它们都将拥有自己的标识符和其他属性,标识符应该是轨道表中的主键和外键。您可以避免创建文本表格,因为它没有任何属性。但是,如果任何其他表格特别依赖于文本表格,则可以为文本创建一个单独的表格,并在该表格中仅放置一个属性,该属性是文本实体的标识符。
相关问题
- 1. Mysql子类型和超类型 - 数据库建模
- 2. 数据库超类型/子类型
- 3. 超类型/子类型数据库模式问题
- 4. 子类型超类型去
- 5. 数据建模子类型超类型关系时使用什么约束?
- 6. 使用共同点建模实体:超类型/子类型?
- 7. 插入到MVC与超类型/子类型的数据库,第一个模型
- 8. 超级类型/子类型数据库实现
- 9. ERD包括超类型,子类型数据库
- 10. 数据库设计:在超类型/子类型上加入表
- 11. 应该在数据库中使用子类型/超类型吗?
- 12. 具有Oracle对象类型创建的子类型超类型。限制子类型的数量?
- 13. 使用强类型枚举建模类型和子类型?
- 14. 超类返回子类型
- 15. 数据类型模型C++
- 16. 创建模型的子类
- 17. Django模型继承:使用现有超类创建子类
- 18. 传递子类型在方法参数,以超类类型
- 19. Django模型:创建子类型
- 20. varchar数据类型datetime数据类型导致超出范围?
- 21. Django的子类(模型)的超
- 22. c#声明子类为类型超类
- 23. 使用导入模块中的类型创建数据类型
- 24. “子类”核心数据模型
- 25. Zend3模型子类型
- 26. 如何创建数据子类型
- 27. 具有子类型交叉链接的超类型/子类型db设计
- 28. Zend_Db_Abstract子类(模型)
- 29. 主义模型数组数据类型
- 30. 如何从超类方法而不是超类类型返回子类型
Aslo,Nik应该看看下面的标签:“class-table-inheritance”,“single-table-inheritance”和“shared-primary-key”。 –