【问题标题】:Which is the correct form to create one to many relationships between two tables on a Oracle database这是在 Oracle 数据库上的两个表之间创建一对多关系的正确形式
【发布时间】:2020-05-04 14:44:56
【问题描述】:

我有一个 Oracle 数据库,其中有两个表,RegistroPPL 和 Alias。一个 RegistroPPL 可以有多个别名。现在,我的问题是,使用这样的桥接表来创建这种关系的正确方法是什么:

或创建这样的直接关系

根据规范化规则创建一对多关系的最佳方法是什么,如何避免冗余数据?

【问题讨论】:

    标签: sql oracle data-modeling


    【解决方案1】:

    根据我的经验,两表设计用于一对多关系。

    我能想到您可能想要使用中间表的唯一原因是,如果有理由认为将来这可能会变成多对多关系。

    【讨论】:

    • 大多数时候,我们只想强制执行关系,而正确的方法是在子表和父表之间使用外键。有时我们需要保存有关可能需要交集表的实际关系的信息,但即便如此我也会质疑这些属性是否可以放在子表中。
    【解决方案2】:

    问题是:一个别名可以用于多个registro_ppl吗?大概不会。因此,您可以避免每个别名一行。

    在某些情况下,可能需要更复杂的设计——例如,如果别名是一个缓慢变化的维度,那么您可能需要version_eff_dtversion_end_dt 来处理它。

    但是,数据模型不建议使用中间表。

    【讨论】:

      猜你喜欢
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多