您的设计要表达的或试图表达的是父类型和子类型的关系。
一种表达方式是
MfgTypeId在每个Entity表中包括该字段:
CREATE TABLE dbo.mfgorders_entity2 (MfgOrderId int NOT NULL, MfgTypeId tinyint NOT NULL, Height decimal (5, 2) , Width decimal (5, 2) , Thickness decimal (4, 2) , RotationSetting decimal (4, 1) , FinishedHeight decimal (5, 2) , FinishedWidth decimal (5, 2) , FinishedThickness decimal (4, 2) , ConSTRAINT PK_mfgorders_entity2 PRIMARY KEY (MfgOrderId, MfgTypeId), ConSTRAINT chkEntity2_MfgTypeID CHECK (MfgTypeId = 'Type Id for Entity 2')) ;
我可能还会更改
MfgOrders表以将MfgTypeId包括在内作为主键的一部分。
CREATE TABLE dbo.mfgorders (MfgOrderId int NOT NULL IDENTITY (1, 1) , MfgTypeId tinyint NOT NULL, OrderId int NOT NULL, LineNbr tinyint NOT NULL, ItemDescription varchar (999) , ManufacturingCost smallmoney, ConSTRAINT PK_mfgorders PRIMARY KEY (MfgOrderId, MfgTypeId)) ;



