在主表中建立包含部分值的主鍵,並在部分表中使用該主鍵作爲該表的主鍵和返回主表的外鍵。
create table TestEquipment(
ID AutoNumber primary key,
Section int not null,
..., -- other fields common to test equipment
constraint CK_TestEquipmentSection(Section between 4 and 26),
constraint UQ_TestEquipmentLink unique(ID, Section)
);
由於ID本身是唯一的,爲什麼要創建一個唯一的約束ID和段值?因此,我們可以參考章節表中與FK的組合:
create table Section4(
ID int not null primary key,
Section int not null,
..., -- other fields for section 4 entries
constraint CK_Section4 check(Section = 4),
constraint FK_Section4TE foreign key(ID, Section)
references TestEquipment(ID, Section)
};
create table Section5(
ID int not null primary key,
Section int not null,
..., -- other fields for section 5 entries
constraint CK_Section5 check(Section = 5),
constraint FK_Section5TE foreign key(ID, Section)
references TestEquipment(ID, Section)
};
其他部分表格將被類似地定義。當輸入一個測試設備時,將生成關鍵值,並通過在TestEquipment中創建一個條目來建立部分編號。只能在帶有匹配部分值的部分表中進行輸入。也就是說,如果TestEquipment中的任何條目的ID值爲1001且Section值爲4,則可以包含ID值爲1001的條目的唯一部分表將成爲Section4表。任何嘗試將其輸入任何其他部分表格將被拒絕。
這是關於最簡單的方法來做你會試圖做的事情。
你在哪裏引用「indeterminate」? – philipxy
請編輯你的aswer以明確你的問題是什麼。 – philipxy