Sql 将表检查为约束

Sql 将表检查为约束,sql,database,Sql,Database,我正在建立一个数据库来安排周末的音乐家 我有一张存放音乐家的MUS_花名册。我还有一个仪器表,其中有列出的仪器 我有第三个表MUS_INST(只是一个链接表),它将音乐家的PK和乐器的PK作为外键。它们是一个独特的约束 然后,我有一个MUS_SCHED表,其中有INST的id和MUS的id,以及这在什么工作上发生 音乐家一周只能演奏一种乐器,一周只能演奏一种乐器。这些约束很有效 然而,我可以让任何音乐家演奏任何乐器,因为我不知道如何让SQL检查MUS_INST表,这样我就不能把鼓手放在吉他上,反

我正在建立一个数据库来安排周末的音乐家

我有一张存放音乐家的
MUS_花名册
。我还有一个
仪器表
,其中有列出的仪器

我有第三个表
MUS_INST
(只是一个链接表),它将音乐家的PK和乐器的PK作为外键。它们是一个独特的约束

然后,我有一个
MUS_SCHED
表,其中有INST的id和MUS的id,以及这在什么工作上发生

音乐家一周只能演奏一种乐器,一周只能演奏一种乐器。这些约束很有效

然而,我可以让任何音乐家演奏任何乐器,因为我不知道如何让SQL检查MUS_INST表,这样我就不能把鼓手放在吉他上,反之亦然

有没有一种方法可以检查MUSID和INSTID在MUS_SCHED中同时出现

这是一个大概的轮廓

MUSROSTER

  • 音乐(PK)
仪器

  • 学院(PK)
MUS_INST

  • MUSID(FK)(与INSTAD关联时的UNQ)
  • 灌输(FK)((与MUSID绑定时的UNQ)
MUS_SCHED

  • 穆西德(FK)
  • 学院(FK)
  • WKNUM(带MUSID的UNQ)
如何让Musu SCHED检查MUSID和Institd是否同时出现在Musu INST表上


如何在表中检查链接表上是否出现复合键(组合)。

MUSID
institd
上向
MUS_INST
添加PK


然后在
MUS_SCHED
上添加另一个引用
MUS_INST
上PK的FK,如果我在MUS_INST上添加一个PK,然后在MUS_SCHED上引用它。这如何解决MUS没有INST技能的问题。它只是。目前MUS_ID和MUS_INST是该表上的一个复合键。通过添加一个新键,我看不到h在不知道其他两个属性的值的情况下,这会有所帮助。因为
MUS_SCHED
上的FK将强制要求在
MUSID
instit
表中输入的任何组合必须已经存在于
MUS_INST
表中。因此,您将永远无法安排音乐家演奏一种他不演奏的乐器。明白了,谢谢