2016-08-16 92 views
-2

我有一個數據庫,下面的圖片,我覺得必須有一種有效的方式來爲每個孩子添加單獨的書籍。例如......數據庫中可能會有50名會員。每個俱樂部都會放在自己的書本里,爲了簡單起見,每本書都有10個俱樂部必須完成的部分。我正在考慮爲每個有10個部分的孩子製作一張桌子,但最終會在我的數據庫中放置超過50張桌子。我還想過創建一個名爲book的表格,並且只讓該表格包含10個部分,但是每個孩子的問題可能在8個不同的書籍中。所以一張名爲書的表也不起作用。建立我的數據庫的最佳方式是什麼

有沒有人有如何在數據庫中設置好這個建議?我的最終目標是讓每個孩子與可用的8本書中的一本鏈接。然後,數據庫將跟蹤每個孩子在哪一部分爲他們的某本書。所以......今天的俱樂部A可以完成第一部分的第一部分和第二部分,但是俱樂部B可能只完成第二部分的第一部分。我想從數據庫中提取這些信息,看看每個俱樂部在他們的書本中的位置。 ..但是......我首先需要正確設置數據庫。

我應該爲每本書創建8個單獨的表,並將表數據設置爲第1部分...第2部分...?或者我應該創建一個表並列出8本書,然後將其鏈接到另一個包含部分信息的表?還是有更好的辦法?

感謝所有幫助![mydatabase

+0

這將是最好的閱讀關於這個主題[一堆文章](http://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships-net-8561) ,並且瞭解每個過程以及每個過程的用途,而不是僅僅給出別人認爲最適合您的網站的答案。對不同的餐桌結構和關係進行一些研究,看看哪些名字突出顯示爲有用的結構,然後研究這些名稱以獲得有關如何實施和維護它們的指南 – Martin

+0

Clubber:經常訪問夜總會的人(http:// www .thefreedictionary.com /俱樂部會員)。一本書夜總會。 'Bangin''。從字面上看。 – Martin

回答

1

你需要一本書的表格和一個表格。部分將包含book_id,因此它知道它是哪一本書的一部分。然後,您可以使用section_id將您的孩子鏈接到各個部分,以顯示他們所處的部分。加入書籍的查詢會告訴您哪本書是其中的一部分。

如果孩子可以同時閱讀多本書,那麼您需要一箇中間表,這個中間表在邏輯上位於包含孩子的id和部分id的兩個表之間,因此多本書可以與相同的關聯兒童。

+0

這正是我所要求的!謝謝!在詢問這個愚蠢的問題之前,我在網上搜索了很多論壇和圖片一週。我一直堅持將兒童與書籍聯繫起來的想法,但是將它們與各個部分聯繫起來非常完美!它甚至解決了我遇到的其他問題!再次感謝你! –

+0

沒問題。這是一個基於關係數據庫中的「規範化」原則的非常標準的設計 - 如果將來遇到這種事情,可能是一個很好的研究課題:-) – ADyson

0

您可以添加已id_child一箇中間表child_parent和id_parent從表子和父表的每一行中,所以你最終的孩子和家長之間的N-N關係。

+0

給予孩子們經常有多個父母(!),這本身就是一個有用的建議,但是OP詢問如何表示孩子正在閱讀哪本書,以及他們正在閱讀哪本書。 – ADyson

相關問題