【发布时间】:2017-06-08 10:28:51
【问题描述】:
假设任何一个设计数据库(ER 模型)的人,他有三个表 CHECKING-ACCOUNT、SAVINGS-ACCOUNT 和 LOAN-ACCOUNT。
假设他知道超类型-子类型的关系。于是他实现了超类型——子类型。
我的问题是——在实现超类型-子类型关系后,他得到了什么好处或优势?实现超类型 - 子类型是最佳实践吗?
【问题讨论】:
-
我只是不确定他为什么不将帐户类型、帐户 ID、帐户余额都放在同一个表中。
-
如果我们总是使用一张表来存储相似(不是100%相似)类型的东西(很少有相同的列,很少有不同的)那么超类型-子类型关系有什么用呢?跨度>
-
如果每个表中有很多列彼此无关,您可能不希望大量空列膨胀。或者,如果您有许多子类型,您将再次得到许多空列。 sub-super 可以防止这些问题。
-
这是一个常见问题解答,google stackoverflow 数据库 sql 表子类型/继承/多态和/或多个/多个关系/关联/FK。 PS请尽可能使用文本,例如这里的 DDL 和代码块而不是您的 ERD 和表的图像(分别)。
-
您可能需要查看几个标签。 class-table-inheritance 和 single-table-inheritance
标签: database database-design database-normalization denormalization supertype