簡體   English   中英

什么更好? 幾個較小的數據庫或一個大的

[英]What´s better? Several smaller databases or one large

我正在申請學習外語單詞,所以我將這些單詞存儲在我的數據庫中。 這些字被分離成例如3個級別的難度。 每個級別由一些詞組組成,這些詞組介紹了 SQLite db 的 TABLES。 我使用SQLiteOpenHelper作為應用程序和數據庫之間的通信。

現在我的問題。 什么是更好的?

  • 制作3 個較小的數據庫,每個數據庫都用於每個級別並使用自己的 SQLiteOpenHelper,因此將 3 個 dbs 與 3 個打開的助手放在一起。
  • 制作1 個大型數據庫,其中 3 個級別,這意味着許多 TABLES,但只有 1 個 SQLiteOpenHelper。

感謝您的任何建議或意見。

我建議使用 1 個大型數據庫 (DB)。

你不應該擔心制作大型數據庫,數據庫是為了存儲大量數據(甚至是多表)而發明的。 創建和維護一個數據庫比創建和維護多個數據庫容易得多,並且使用一個數據庫您的代碼會更清晰。

我不知道你的程序,但我會更進一步:如果你存儲它們的相同信息,我寧願將所有單詞存儲在同一個表中,並添加一列顯示級別,另一列顯示組他們所屬的。

SQL 的主要思想是您並不真正關心您的數據庫需要多少空間以及查找查詢結果需要多長時間,因為數據庫管理系統(在您的情況下是 SQLiteOpenHelper 和 SQLite)非常高效考慮空間和時間。 相反,您應該專注於設計一個可以輕松擴展的系統(例如,如果您想向包含單詞的表中添加另一列(例如,您想要存儲有關單詞的新信息)或想要添加新的級別或組發展后期),結構清晰。 通過 SQL 的 SELECT 命令分隔組和級別可能會損失幾毫秒,但您的數據庫將更加靈活 - 您可以輕松添加級別和組並添加有關單詞的更多信息。 設計好DB的關鍵:不同的表應該存放不同種類的數據,同一張表存放相同種類的數據...

您在評論中提到的錯誤幾乎肯定是您的應用程序代碼中的錯誤。 具有多個數據庫的應用程序沒有理由遇到這種錯誤。

也就是說,我對您最初的問題的回答是,客觀上使用單個數據庫“更好”。

更好是因為您需要維護的代碼更少,在給定情況下不可能嘗試訪問錯誤的數據庫,並且代碼將更加慣用 - 即使用多個數據庫沒有任何好處,所以如果您要使用多個數據庫,任何閱讀您代碼的人都會花費大量時間試圖弄清楚您為什么這樣做。

暫無
暫無

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

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