0

我是 SQL 新手,正在使用 SQL Server Managmetn Studio V11

我的结构有问题:

例如,如果我有一个餐桌水果

FruitID、姓名、FamilyID、ColorID

FamilyID、姓名

AllowedColor

ID, FamilyID, ColourID
1,     1,     56
2,     1,     88
3,     1,     99
4,     2,     56
5,     2,     57

所以在Allowed Colour我列出了某个家庭可以拥有的颜色。如何限制Fruit表格中输入的值,以便只为水果提供允许的颜色?

4

1 回答 1

1

向 AllowedColors 添加唯一约束。(并考虑删除“ID”列。)

alter table AllowedColors
add constraint your_constraint_name
unique (FamilyID, ColorID);

可能也希望声明这些列中的每一列NOT NULL。我会把它留给你。

现在您可以使用该对列作为外键约束的目标。

alter table fruit
add constraint another_constraint_name
foreign key (FamilyID, ColorID) 
  references AllowedColors (FamilyID, ColorID);

您还需要从 AllowedColors.FamilyID 到 Family.FamilyID 的外键。

于 2013-07-11T15:29:49.137 回答