2014-01-23 27 views
0

我有三個表:Facility,Project,System。嵌套約束 - 基於另一個表限制條目

設施。 FacilityID是Facility表中的PK。 項目。 ProjectID是項目表中的PK。 系統。 SystemID是系統表中的PK。

一個項目只能與一個設施關聯。這種一對多的關係是通過FK設施建立的。 FacilityID - 項目表中的Project.FacilityID。

一個設施可以有很多系統。這種一對多關係是通過FK設施建立的。 FacilityID - 系統。系統表中的FacilityID。

系統表中還需要一列存儲影響該系統的最新項目的ProjectID。我如何添加一個約束,只允許輸入對該系統錶行的FacilityID有效的ProjectID值?

回答

0

所以Project包含ProjectID和FacilityID,而System包含SystemID,FacilityID和ProjectID。

您可以在Project上創建一個由ProjectID和FacilityID組成的複合索引,然後在ProjectID和FacilityID的系統中創建一個鏈接到System上新索引的複合FK。