CREATE TABLE Books(
BookID SMALLINT NOT NULL PRIMARY KEY,
BookTitle VARCHAR(60) NOT NULL,
Copyright YEAR NOT NULL
)
CREATE TABLE Authors(
AuthID SMALLINT NOT NULL PRIMARY KEY,
AuthFN VARCHAR(20),
AuthMN VARCHAR(20),
AuthLN VARCHAR(20)
)
CREATE TABLE AuthorBook(
AuthID SMALLINT NOT NULL,
BookID SMALLINT NOT NULL,
PRIMARY KEY (AuthID, BookID),
FOREIGN KEY (AuthID) REFERENCES Authors (AuthID),
FOREIGN KEY (BookID) REFERENCES Books (BookID)
)
這裏結表authorbook 爲什麼主鍵(AUTHORID,BOOKID)用於爲什麼sql中的多對多關係表實現外鍵爲主鍵?
爲什麼不能有一個單獨的表ID,並使其主鍵?
你可以這樣做。當更廣泛的數據類型存在時,比如varchars,縮放比較好的是PK。對於合成的特殊用例,你肯定需要在特殊用例中看到int id(這裏是http://stackoverflow.com/a/38340726)。 – Drew
爲什麼添加一個代理鍵到什麼已經是代理鍵?除非決議表要成爲另一個細節的主人,否則沒有理由在表中添加另一個無意義的關鍵字。作爲一個行業,我們對替代品感到瘋狂,恕我直言。 –