我是否应该在同一个表上指向另一个记录的字段,或者更好地拥有单独的表和重复数据?

时间:2014-12-18 09:09:50

标签: sql database database-design

我在我的数据库中设计了一个表格,如下所示:

表:公司

ID_Company  Name    City      Parent_Company

    1       Alpha   Paris          3

    2       Beta    New York       3

    3       Delta   London         4

    4       Gamma   Sidney         -

该领域" ParentCompany"将存储" ID_Company"值。

这是一个好的设计还是我应该创建一个单独的表" Parent_Companies"并复制数据?

2 个答案:

答案 0 :(得分:0)

您正在使用常见的设计模式 - 自我引用表。 这没什么不好的

答案 1 :(得分:0)

这是一个很好的设计,一个表引用本身就非常好。这是你设计层次结构的方式。

为' Parent_Company'添加外键。列到您的ID_Company列以强制执行约束并具有数据库完整性。

ALTER TABLE [Companies]  WITH CHECK ADD  CONSTRAINT [FK_ParentCompanu] FOREIGN KEY([Parent_Company])
REFERENCES [Companies] ([ID_Company])