设计表Sql Server

时间:2014-10-01 12:43:04

标签: sql sql-server

早上好, 在数据库的设计中,我有一个表(TabA' s调用它),它可以与其他四个表有关系。从某种意义上说,这个表可以与四个中的第一个连接,第二个连接,第三个连接到第四个连接,但是不能与它们连接;或者它可以有一个(带有任何表),或者两个链接(总是带有两个中的任何一个),依此类推。

表格TabA我添加了四个字段,这四个字段引用了四个表格,这些表格可能是" null"当他们没有任何联系。

想知道这是一种最佳设计(比如TabA中的四个字段),还是可以针对这种情况做出更好的设计?

非常感谢你的回复。

戴夫

1 个答案:

答案 0 :(得分:1)

在回答您的评论中的问题和澄清时,答案是您的设计无法根据外键列的数量进行改进。为每个潜在的外键关系设置特定的外键列是最佳实践设计。

但是,架构设计本身似乎有问题。我没有足够的信息来判断“Distributori_ [N] _Livello”表是否是真正的层次结构。如果是,通常可以将自引用表用于分层结构而不是一组N表,因为您链接的图表似乎正在使用。如果您能够以这种方式重构您的设计,则可以减少所需的外键列数。

鉴于所提供的数据,我是否可以说这是否可能。