您可以創建一個涉及多到很多表是這樣的:
CREATE TABLE RECOMMENDED_BOOKS (
Book_id1 INT NOT NULL, // FK related to BOOK.Book_id
Book_id2 INT NOT NULL), // FK related to BOOK.Book_id
CONSTRAINT pk_RecommendedBooks PRIMARY KEY (Book_id1, Book_id2)
,只要你想你可以再添加儘可能多的條目。在Books表中,可以添加1作爲Book_id1和2的值作爲Book_id2的值,其中book 2是「Tom Sawyer」;然後添加 「賈米McPheeters遊記」 作爲另一個連接器等
例如,如果這些都在BOOK表:
Book_id 1, Book_name "The Adventures of Huckleberry Finn"
Book_id 2, Book_name "The Adventures of Tom Sawyer"
Book_id 3, Book_name "The Travels of Jaimie McPheeters"
Book_id 4, Book_name "Westward Ho"
Book_id 5, Book_name "Main Traveled Roads"
...你可以添加這些記錄:
INSERT INTO RECOMMENDED_BOOKS (Book_id1, Book_id2) VALUES (1, 2)
INSERT INTO RECOMMENDED_BOOKS (Book_id1, Book_id2) VALUES (1, 3)
您是否還插入了「2,1」和「3,1」記錄取決於您是否希望能夠說「喜歡哈克芬的人推薦湯姆索耶」並且還說:「喜歡湯姆索耶的人推薦哈克芬「(或者單向推薦是否被認爲是雙向的而沒有明確的r據此)。
此後應該可以確定book2(「Tom Sawyer」)和book3(「Jaimie McPheeters的旅行」)之間存在關聯,儘管沒有「2,3」記錄。這有點像「凱文培根的七度」 - 所有有相互推薦的書本身都是相互推薦的。 OR,OTOH,你可以將你的連接限制爲直接連接(除非插入2,3條記錄,否則「Huck Finn」連接到「Tom Sawyer」,但是「Tom Sawyer」不連接到「Jamie McPheeters」)
[關聯實體](https://en.wikipedia.org/wiki/Associative_entity) – Plutonix