Sha*_*ani 3 normalization database-design relational-theory
我们正在计划一个带有新数据库 (MS SQL Server) 的新系统。
我们有以下实体和以下关系:
实体: 俱乐部、链、支付类型等...
关系: 俱乐部-连锁(MM);(Clubs_Chains)-佣金(1-1);Clubs-Chains-PaymentTypes (MM);
我们希望对数据库进行规范化。我们考虑了以下选项,但我们不确定它是否是该场景的最佳解决方案:
Clubs_Chains 表: ClubChainID PK int 不为 null,ClubID FK int 不为 null,ChainID FK int 不为 null,Commission int
Clubs_Chains_PayMethod 表: ClubChainID PK int 不为空,PaymentTypeID PK int 不为空
谢谢!
在clubs_chains表上没有必要有代理主键。
clubs_chains 中两个外键的组合足以作为主键。
您可以使用外键约束,以确保您的clubs_chains_paymethod表引用现有记录中clubs_chains使用复合主键。这可能会有所帮助,因为它允许在clubs_chains_paymethod和您的clubs和chains表之间进行更直接的连接,而不会牺牲任何参照完整性。
另一方面,有些人只是喜欢使用代理主键,即使在交叉表上也是如此。如果这是您的数据建模风格,那也没关系。
归档时间: |
|
查看次数: |
156 次 |
最近记录: |