簡體   English   中英

SQL:數據庫中的n到m關系,其中一個表之間存在關系

[英]SQL: n to m relationship in a database with relations inbetween one table

在談論數據庫中的n到m關系時,經常會提到交集表。 例如,有作品和書籍,作者可以與許多書籍有關系,反之亦然。

但是:我如何塑造這種關系,作者也可以在他們和書籍之間建立關系?

例如 - 作者A寫過第1冊和第2冊,作者A是作者B的朋友。 - 第1冊與第2冊相同的類型。

那么我有多個交叉表嗎? 例如作者 - 書籍關系表,作者 - 作者“朋友” - 關系表和書籍“類型”關系?

我是數據庫和SQL的初學者...感謝您的幫助,Anne

是的,這是相當標准的。 如果書籍可以有多種類型,則Book-Genre表格從一側包含Genre ID,而另一側包含Book Ids則非常合適。 作者 - 朋友關系有點棘手,因為交集表將連接到作者表兩次(對於作者 - 朋友關系中的每個作者一次),但基本相同。

正如您所確定的那樣,這些與書籍作者表相同,該表以書籍形式將書籍鏈接到作者。

尋找學生 - 教師 - 課程的例子,因為它們是相似的,並且通常是n:m解釋的一部分。

要創建一個簡單的1:n關系,只需一個FOREIGN KEY -column即可指定相關記錄。

但是,無論何時想要建立m:n關系模型,或者您可能需要向1:n關系添加其他信息,您都需要一個映射表。

  • 具有1:n關系的映射表:想象一下,一本書可以只有一個當前讀者。 如果您在Book表中使用FK CurrentReaderID ,則在更改FK值后,您將無法找到以前的讀者。
  • 使用m:n關系映射表m:n將關系視為一個對象,並將其與自己的特定詳細數據一起考慮(when,validTo,createdBy ...)

是的:在設計良好的數據庫中,您會發現許多表中包含各種不同的關系/映射

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM