私は次のように別のテーブルからリレーションを作るしようとしています:関係
ブックス
IdBook (primary)
SerialNumber (primary)
NameBook
他のテーブルには、次のとおりです。
QTT
IdQtt (primary)
IdBook
Qtt
関係を作るにはどうすればいいですかはQtt.IdBook
とBooks.IdBook
の間にありますか?
私は次のように別のテーブルからリレーションを作るしようとしています:関係
ブックス
IdBook (primary)
SerialNumber (primary)
NameBook
他のテーブルには、次のとおりです。
QTT
IdQtt (primary)
IdBook
Qtt
関係を作るにはどうすればいいですかはQtt.IdBook
とBooks.IdBook
の間にありますか?
あなたは
CONSTRAINT FK_idbook FOREIGN KEY (IdBook)
REFERENCES Books (IdBook)
ON DELETE CASCADE
ON UPDATE CASCADE
のような、その列のテーブル間のFOREIGN KEY
関係を作成するためのものしかし、あなたはIdBook, SerialNumber
にあなたのBooks
のテーブルに複合PKを持っているので、あなたがあなたの中に別のキー列を必要とするので、それが動作しません。他にPK列の両方を参照するために、Qtt
表あなたは(複数の列から構成される)複合主キーを持っている場合は、すべての**外部キー**そして、PFD(部分的な機能依存)
constraint FK_book FOREIGN KEY (IdBook,IdQtt) references Books (IdBook,SerialNumber)
それはBooks.IdBook
上UNIQUE
制約と、その列を参照するQtt.Book
にFOREIGN KEY
制約を作成することは技術的には可能ですが、一人でIdBook
が一意Books
行を識別しないので、これはおそらく、あなたのデータモデルでは動作しません。ブックには1対多の関係があり、BookTitle
から別の1対多の関係にあるBookTitle
のようなテーブルがIdBookにキーイングされており、IdBook
にあるテーブルが必要です。
だろうそのテーブルを参照しているysは**これらすべての列を含む** ** ** **例外もありません。あなたは** PKの半分しか参照できません - それはすべてか何も取引ではありません –