2011-03-06 50 views
4

我正在創建一個應用程序,該應用程序將使用大量用於靜態的所有意圖和目的的數據。我曾認爲使用SQLite數據庫來處理這些數據是最有意義的。我想知道只使用XML文件是否合理,然後將其作爲原始資源進行訪問。請記住,可能會有很多數據,大約數百個單獨的數據。原始資源與SQLite數據庫

我是否有權假定SQLite是最好的,無論是在內存管理和總體設計考慮方面,或者SQLite沒有意義,如果數據基本上是靜態的?

回答

4

事實上,如果數據是靜態的,SQLite似乎是無稽之談。但是,如果你要處理大量的數據,你應該使用它:

  • 它會更容易:
    • 檢索數據
    • 篩選數據
    • 排序數據
  • 由於SAX或DOM解析XML的方式,使用XML文件會導致一些性能問題。
  • 這將是您更輕鬆地更新,在未來的一組數據(假設你想在未來的版本中增加更多的數據)
+0

感謝Christian。偉大的觀點。所以你相信SQLite有很大的意義,因爲它更具可擴展性等等。即使應用程序不一定允許用戶添加到數據庫,它也是有意義的。 – LuxuryMode 2011-03-06 21:39:22

+0

實際上,我的一個應用程序必須擁有超過70,000條記錄,這是使用SQLite數據庫創建的。將它與SQlite索引混合使用,性能將會提高很多。 – Cristian 2011-03-06 22:18:11

0

克里斯蒂安是正確的。數據庫爲您提供更好的訪問時間,並允許以非常方便的方式修改數據。在樹狀數據結構的情況下,XML可能是一個更好的主意。

在我看來有兩個問題在這裏:

  1. 你存儲什麼樣的數據?
  2. 是否允許用戶修改此 數據(例如,在應用程序或 使用記事本)

還有1個XML的大缺點 - 它是最終開放的文本。所以任何人都可以閱讀它。爲了防止它,你將不得不加密數據(這意味着額外的努力)。在XML的情況下,使用編組技術(JiBX,Castor,JAXB)可能會很方便,也可能會降低內存消耗。

請說明您在數據庫中存儲什麼樣的數據,因此我們可能會提出更好的答案。

+0

謝謝Altanis。這很有意義。這些數據本質上是一些可以在Linux和其他平臺上使用的不同命令的參考指南。所以會有命令的文本,然後是描述。這些數據將按類別等進行組織。聽起來像SQLite是要走的路。 – LuxuryMode 2011-03-06 23:39:57

+0

在這種情況下,數據庫方法似乎是一個非常好的主意。我想你可能想用不同的標準來搜索這個數據庫(通過一些描述你可能會搜索命令;你也可能會根據命令名搜索命令描述)。你所描述的數據理想地適合於表格,所以這是另一個優點。最後一個 - 你不需要加密文件(在這種情況下,它似乎很重要)。我腦海中有一個騙局 - 壓縮的XML可能會更小。總結一下:在我看來你的選擇是好的。 – altanis 2011-03-08 07:26:57

0

你是否認爲你的數據是stollen(來自sqlite數據庫)? 因爲作爲一個sqlite數據庫,任何有root用戶的人都可以拉數據庫文件並使用它

+0

爲什麼這會成爲一個問題?這是他的電話,他的數據。無論如何,它更容易從XML中「竊取」數據。 – 2014-12-03 21:03:57