Database 超级类型子类型表的好处是什么

Database 超级类型子类型表的好处是什么,database,database-design,database-normalization,denormalization,supertype,Database,Database Design,Database Normalization,Denormalization,Supertype,假设任何一个设计数据库(ER模型)的人都有三个表:支票账户、储蓄账户和贷款账户 假设他知道超类型-子类型关系。所以他实现了超级类型-子类型 我的问题是,在实施了超型-亚型关系之后,他得到了什么好处或优势?实现超级类型-子类型是最佳实践吗?优点是,超级类型允许我们统一多个实体集的公共属性、关系和完整性,而子类型允许我们支持特定类型的属性、关系和完整性约束。这使我们能够简化数据库和查询,并加强完整性 在您的第一个示例中,如果我们想知道所有帐户是何时开立或审核的,我们需要分别查询3个表中的每个表。

假设任何一个设计数据库(ER模型)的人都有三个表:支票账户、储蓄账户和贷款账户

假设他知道超类型-子类型关系。所以他实现了超级类型-子类型


我的问题是,在实施了超型-亚型关系之后,他得到了什么好处或优势?实现超级类型-子类型是最佳实践吗?

优点是,超级类型允许我们统一多个实体集的公共属性、关系和完整性,而子类型允许我们支持特定类型的属性、关系和完整性约束。这使我们能够简化数据库和查询,并加强完整性

在您的第一个示例中,如果我们想知道所有帐户是何时开立或审核的,我们需要分别查询3个表中的每个表。如果我们想在客户和客户之间建立关系,我们需要3个单独的关系和3个单独的查询来获取所有客户和客户。诸如确保审查日期在开幕日期之后的限制必须定义3次


如果没有子类型,我们将需要支持单个公共类型的所有可能属性和关系,并且我们的查询将必须包括特定于类型的逻辑以分别处理不同的行。我们不能轻易地强制执行特定类型的约束,例如不适用于支票账户的正利率。

我不确定他为什么不让账户类型、账户ID、账户余额都在同一个表中的账户表。如果我们总是使用一个表,来存储类似(而不是100%类似)类型的东西(少数列相同,少数列不同)那么,超级类型-子类型关系有什么用呢?如果每个表中有很多列彼此无关,您可能不希望出现许多空列的膨胀。或者,如果您有许多子类型,您将再次遇到许多空列。sub-super可以防止这些问题。这是一个常见问题解答,google stackoverflow数据库sql表子类型/继承/多态性和/或多个/多个关系/关联/FKs.PS请尽可能使用文本,如此处的DDL和代码块,而不是ERD和表(分别)的图像。您可能需要查看几个标记。和