**Table 1**
BOOK(bookID,bookEdition,bookName)
其中(bookID,bookEdition)的组合用作键
**Table2**
SHELF(id,shelfCode,book)
现在我希望table2中的列“book”引用Table1中的复合键(bookID,bookEdition)。
任何人都可以请指导我这样做的正确方法。或者如果我的方法不对,请纠正我
或者我们不能向具有复合键的表添加外键约束?
答案 0 :(得分:2)
如果你有一个复合主键(由多个列组成),所有外键必须使用PK的所有列来引用该表。因此,外键约束只能添加引用整个键,而不是键的一部分。
您可以将bookID
和bookEdition
同时添加到SHELF
表格中(对我来说更合理的是bookID
和bookEdition
一起可以唯一地识别预订)或为Book创建一个单独的主表(使用键bookID
)并在所有其他表中引用该表。