我正在構建一個數據庫,以便在週末安排音樂家。查看錶格作爲約束條件
我有一個MUS_ROSTER
存儲音樂家的表。我也有一個INSTRUMENTS
的表格,列出了這些工具。
我有第三個表MUS_INST
(只是一個鏈接表),它有一個音樂家的PK和一個樂器的PK作爲外鍵。它們是一個獨特的約束。
然後我有一個MUS_SCHED
表,它具有INST的id和MUS的ID以及WK的發生情況。
音樂家每週只能演奏一種樂器,一週內只能演奏一種樂器。這些限制工作正常。
但是,我可以讓任何音樂家演奏任何樂器,因爲我不知道如何讓SQL檢查MUS_INST表,以便我不能將鼓手放在吉他上,反之亦然。
有沒有一種方法來設置一個檢查MUSID和INSTID一起出現在MUS_SCHED
這裏有一個大致的輪廓
MUSROSTER
- MUSID(PK)
INSTRUMENTS
- INSTID(PK)
MUS_INST
- MUSID(FK)(UNQ時拴INSTID)
- INSTID(FK)((UNQ時拴MUSID )
MUS_SCHED
- MUSID(FK)
- INSTID(FK)
- WKNUM(UNQ與MUSID)
你如何MUS_SCHED檢查MUSID和INSTID一起發生在MUS_INST表?
如何讓表格檢查鏈接表上是否出現複合鍵(組合)。
如果我在MUS_INST上添加一個PK,然後在MUS_SCHED上引用它,這是如何解決MUS沒有INST技能的問題。它只會。目前MUS_ID和MUS_INST是該表上的組合鍵。通過添加一個新的密鑰,我不知道如果不知道其他兩個屬性中的值是如何幫助的。 – Discipleofaslan
因爲'MUS_SCHED'上的FK必須強制要求在MUSIC_INST表中必須已經存在在日程表中輸入的MUSID和INSTID的任意組合。因此,你永遠無法安排音樂人演奏他不玩的樂器。 –
明白了,謝謝 – Discipleofaslan