2013-06-27 160 views
-1

我正在爲圖書館創建應用程序。我需要創建一個數據庫,其中包含有關圖書館中所有圖書和圖書館成員的詳細信息。我需要維護一張表格,將一個人與他讀過的書籍聯繫起來。每本書都有一個唯一的ID以及成員。我需要跟蹤該人拍攝的每本書,並根據他的興趣推薦書籍。我也必須跟蹤該人完成一本書所需的時間。我只有關於數據庫的基本知識,而且也只涉及MySQL。如果我是對的,你不能在MySQL中有一個字段的多個值。我想創建一個表格來映射他/她已登陸的書籍。但是這種方法的問題在於桌子的大小無法控制地增加。有沒有其他的方法可以讓我的數據庫變得更簡單?我需要頻繁地搜索數據庫中的內容。所以表格必須儘可能小。如何設計圖書館應用程序

如果我的要求不是由它來完成的,我還準備好學習MySQL以外的任何其他語言。

+0

圖書館無法使用[Koha](http://www.koha.org/)等現有的圖書館自動化軟件嗎? –

+0

我相信koha基於perl,是一個基於web的軟件。我創建的庫軟件基於java,並且有幾個自定義功能需要添加。我對perl知之甚少。所以不能夠基於koha調試或提供對圖書館系統的支持。 – ADC

回答

0

標準方法確實是創建一個將人員映射到書籍的「連接」表。這樣的表可能有很多行,但每行只能包含幾列 - 人員ID,書籍ID,借出時間戳,時間戳已完成。

擁有數百萬行的MySQL表並不罕見。別擔心。確保索引個人ID和書籍ID,你會沒事的。

+0

謝謝你的回覆。但我還有一個問題。如果我創建的數據庫包含數以百萬計的圖書,並且同樣大量的人不會減慢搜索和檢索過程,即使我索引了個人ID和書籍ID?如果我錯了,請原諒我。 – ADC

+0

當然,可能。如果有數百萬本書和數百萬人,並且每個人都借用每本書,那麼PersonBook映射表可能有數萬億行。但這可能不會發生。索引將大大加快搜索速度。最重要的是,如果有很多書人關係,你會以這種或那種方式存儲很多數據。將它們作爲單獨的行存儲在一個表中(而不是連接成單個條目或某些類型),這使MySQL能夠幫助您快速搜索。 –