2013-07-25 70 views
0

我在数据库中有几个表,我有一个关于外键的快速问题。SQL:用于继承的多个外键

公司

PK: CompanyID 

厂商

PK, FK: CompanyID 

制作/模型

PK: MakeModelID 
FK: ManufacturerID 

设备

PK: EquipmentID 
FK: MakeModelID 

这将是适当的,包括在Equipment表中的列ManufacturerID作为FK到制造商?然后,在Equipment表中的ManufacturerIDMakeModelID上创建索引会很明智吗?我自学成才,只是寻求一些设计意见。谢谢。

+0

而在onteh索引的事情,没有大多数数据库不会自动创建一个索引外键,如果你需要一个(它很可能是你),你需要创建它 – HLGEM

回答

2

不,不适合在设备表中包含FK到制造商表格。

设备表已对制造商表格中的FK指定了制造商/型号表格。如果您创建了FK,那么技术上可以将设备表中的记录链接到两个不同的制造商。

+0

如果你是如此愚蠢的做这样的一件事情,那么你需要在所有关联表上触发一个触发器,以确保ID保持同步。 – HLGEM

0

由于您已经有了MakeModelID,并且MakeModel表已经有了ManufacturerID,所以没必要在Equipment表中包含ManufacturerID。所以你可以通过MakeModel表来加入ManufacturerID。