【问题标题】:Should a table containing couples of rows from another table with similar attribute contain that data?包含来自另一个具有相似属性的表的几行的表是否应该包含该数据?
【发布时间】:2018-03-13 16:49:08
【问题描述】:

假设我们有一张桌子,以及他们来自的国家/地区。

我们有一张情侣表,每一行都有人,每对情侣永远属于同一个国家。

我们想在情侣表上拯救国家吗? 这会算作标准化吗?多余的?

【问题讨论】:

  • Couples 表应该有 Person 的 ID。根据第一句话,Person 表包含他们来自的国家/地区。然而,这个问题的部分答案取决于表格的用途以及它们的使用方式。

标签: sql relational-database database-normalization redundancy


【解决方案1】:

如果您想强制执行夫妻必须属于同一国家/地区的规则,您可以在couples 表中包含country。请参阅我对How to preserve data integrity in circular reference database structure? 的回答以了解类似情况以及如何实现此操作的示例。

couples 表中的country 列在逻辑上是多余的,并且违反了 2NF(假设该表具有两个人的标识符作为主键或唯一键),但重叠外键约束的方法消除了风险数据异常。

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    相关资源
    最近更新 更多