在 Oracle 数据库上的两个表之间创建一对多关系的正确形式是什么
Which is the correct form to create one to many relationships between two tables on a Oracle database
我有一个 Oracle 数据库,其中有两个 table,RegistroPPL 和 Alias。一个 RegistroPPL 可以有多个别名。现在,我的问题是,创建这种关系的正确方法是什么,使用这样的桥 table:
或像这样建立直接关系
根据规范化规则创建一对多关系的最佳方式是什么,如何避免冗余数据?
根据我的经验,双table设计用于一对多关系。
我认为您可能想要使用中间层 table 的唯一原因是,如果有某种理由认为将来这可能会成为多对多关系。
问题是:一个别名可以用于多个registro_ppl
吗?大概不会。因此,您可以为每个别名保留一行。
在某些情况下可能需要更复杂的设计——例如,如果别名是一个缓慢变化的维度,那么您可能需要 version_eff_dt
和 version_end_dt
来处理它。
但是,数据模型不建议使用中间值 table。
我有一个 Oracle 数据库,其中有两个 table,RegistroPPL 和 Alias。一个 RegistroPPL 可以有多个别名。现在,我的问题是,创建这种关系的正确方法是什么,使用这样的桥 table:
或像这样建立直接关系
根据规范化规则创建一对多关系的最佳方式是什么,如何避免冗余数据?
根据我的经验,双table设计用于一对多关系。
我认为您可能想要使用中间层 table 的唯一原因是,如果有某种理由认为将来这可能会成为多对多关系。
问题是:一个别名可以用于多个registro_ppl
吗?大概不会。因此,您可以为每个别名保留一行。
在某些情况下可能需要更复杂的设计——例如,如果别名是一个缓慢变化的维度,那么您可能需要 version_eff_dt
和 version_end_dt
来处理它。
但是,数据模型不建议使用中间值 table。