将表检查为约束

时间:2015-10-20 20:00:09

标签: sql database

我正在建立一个数据库,以便在周末安排音乐家。

我有一张存储音乐家的MUS_ROSTER表。我还有一张INSTRUMENTS表,其中列出了所列文书。

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

然后我有一个MUS_SCHED表,其中包含INST的ID和MUS的ID以及它发生的WK。

音乐家一周只能演奏一种乐器,一周内只能播放一种乐器。这些约束很好。

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

有没有办法在MUS_SCHED中设置MUSID和INSTID一起出现的检查

这是一个粗略的轮廓

MUSROSTER

  • MUSID(PK)

INSTRUMENTS

  • INSTID(PK)

MUS_INST

  • MUSID(FK)(UNQ与INSTID联系时)
  • INSTID(FK)((与MUSID绑定的UNQ)

MUS_SCHED

  • MUSID(FK)
  • INSTID(FK)
  • WKNUM(UNQ with MUSID)

如何让MUS_SCHED检查MUS_INST表上是否一起出现MUSID AND INSTID?

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

1 个答案:

答案 0 :(得分:0)

public int RegId { get; set; } public System.TimeSpan StartTime { get; set; } public System.TimeSpan EndTime { get; set; } public System.DateTime PresenceDate { get; set; } MUS_INST上向MUSID添加PK INSTID

然后在引用MUS_SCHED上的PK的MUS_INST上添加另一个FK。