我有一个包含以下表格的数据结构
Customers
Transactions (Type A)
Transactions (Type B)
我们正在添加Comments
表
Customers
还有一个Transactions A
和Transactions B
Comments
可以与Transactions
或Customer
我们正在就数据库格式进行内部讨论。
一方想要创建一个评论表和三个交叉表。 一方想要创建一个带有客户外键的评论表和2个可以为交易的可空键。
是否存在一个普通表格规则,表明一个比另一个好?有没有达成共识?
编辑:
更多答案和细节
答案 0 :(得分:1)
最重要的正规形式(1NF-6NF,BCNF和派生类)不允许表中的空值,因为它们都只基于与值的关系,而不是空值。更有用的是,有一个称为正交设计原理的设计原则,它规定不允许具有相同属性的元组出现在模式的多个位置。您的两个事务表似乎可能会在多个地方发表评论,这会破坏正交设计的规则。
您可以创建一个父事务表,它结合了两个事务表的公共属性,包括comment属性(超类型/子类型模式)。