0

我有三张表 Teachers、Student、ViewType

table Teachers{
  Id uniqueidentifier, 
  Name nvarchar
}


table Student{
  Id uniqueidentifier, 
  Name nvarchar
}


table ViewType{
  Id uniqueidentifier, 
  Type String
}

注意:假设 ViewType 不是常规查找表的示例。
它包含有关如何在 ui 中呈现教师或学生的数据,因此不应在教师或学生表模型中。

有没有办法为两个表创建一个外键,其中一个键被强制来自并且仅来自这两个表?谢谢。

4

1 回答 1

1

不适用于声明性参照完整性约束。

您必须使用触发器来实现它;并且您将在所有三个表上都需要它们(insert+ updateon ViewTypedelete+ updateon 其他)。

您可以以另一种方式放置约束:

alter table Student add constraint FK foreign key (Id) references ViewType (Id)
alter table Teachers add constraint FK foreign key (Id) references ViewType (Id)

它并不完美(您最终可能会得到一个引用相同 ID 的学生和教师,这可能是您必须处理的),但这可能是您能做的最好的事情。

于 2013-04-08T09:13:53.993 回答