单表继承会导致非规范化

时间:2018-11-19 06:09:39

标签: database database-normalization single-table-inheritance denormalization

我们正在尝试提出付款方式的数据模型。可以使用多种付款方式,例如“卡”,“银行转帐”,“电子钱包”,这些付款方式可以进一步分类为:将卡转换为信用卡/借记卡,将银行转帐至ACH / SEPA等。

因此,这是关于将继承建模到数据库表中。一种选择是使用单表继承。我团队中的高级人员将单个表称为非规范化表。但是我不明白为什么?我在这里看不到任何插入/删除/更新异常,每个付款方式记录都是独立的,没有冗余。只是表中会有很多空值,因为列集将是所有付款方式的并集。

1 个答案:

答案 0 :(得分:1)

您可能是对的。通常,具有null的超类型表是通用属性表和某些子类型表的左连接。 (联接的并集。)但是归一化会无损地分解为投影,而反归一化会通过自然联接消除这种情况。所以在这里,对较小表的重新排列可能不是规范化的,并且由于我们规范化和重组的原因可能不是非规范化的原因而没有完成。因此,“归一化”和“归一化”被滥用。尽管如此,即使他们使用了错误的单词,仍然存在问题。你为什么不问他们什么意思?