我有一个表格foo
.foo
有4列:id
、barTypeA
、barTypeB
、barTypeC
。唯一的候选键是 id
。 barTypeA
、B
、C
都是非素属性。从技术上讲,这些属性不仅仅是一个列表;bar
是 A、B 或 C 型的事实并非微不足道。但是,barTypeA
、B
和C
可以为空。
我可以把这个表分成三个表(例如foo
、fooToBar
和barType
),从foo
到fooToBar
具有一对多关系,但我很好奇原始设计是否/如何违反数据库设计标准或正常形式。
如果你有多对多关系,你只需要一个连接表(fooToBar
)。在一对一和一对多中,一(foo
)的id由多(bar
)中的条目引用。
换句话说,如果bar
中的每个条目只连接到一个foo
条目,那么bar
应该只引用foo.id
。但是,如果一个bar
可以链接到多个foo
,而一个foo
可以链接到多个bar
,则使用fooToBar
连接表。