2013-02-21 22 views
0

我在想 - 讓我們來看看任何類型的電腦遊戲,或者一般的任何程序。 (Chrome,Skype,Warcraft,...) 他們需要保存一些用戶希望他們保存的東西。 他們如何做到這一點? 他們是將它保存在一個簡單的文本文件中,還是他們自己打包一個數據庫系統(如MySQL,...)?程序使用什麼來存儲數據? (他們使用已知的數據庫系統嗎?)

+1

不同人的不同筆畫。 – Quentin 2013-02-21 11:23:00

回答

1

這真的取決於您的需求。如果您只需要存儲一些鍵值對,應用程序就可以使用簡單的文本文件(例如* .ini文件),然而這是每個人都可讀的純文本文件。

應用程序當然也可以使用MySql,MS SQL等數據庫。但是,如果您希望將應用程序作爲服務器上的獨立服務運行並需要單獨安裝,那麼這些功能就不太方便。然後,像Sqlite這樣的數據庫也是一個SQL數據庫,但它將所有內容存儲在單個文件中。您的應用程序只需要一種與此文件交互的方式。

還有一種方法是序列化/反序列化保存您要存儲數據的對象。

存儲數據還有其他方法,如NoSQL數據庫。我個人還沒有使用過其中的一個,但這裏列出了其中的一些:http://nosql-database.org/

也可以使用XML。

有無盡的方式提出申請,可以存儲其數據

0

很多程序使用SQLite來存儲數據(http://www.sqlite.org)。 Sqlite是一個非常緊湊的跨平臺SQL數據庫。許多程序都使用文本文件。

1

程序存儲數據的方式實際上沒有終點。 OTOH:

  • 自制的壓縮文件格式:每一個遊戲公司似乎有一些自己的(暴雪MoPaQ,
  • XML文件:通常用於簡單的配置(蘋果公司的plist文件,Windows應用程序的配置,Skype的用戶首選項,...)
  • SQLite數據庫:通常用於大量的個人數據(Firefox:書籤,歷史等; iOS個人信息數據庫等)
  • 「在雲中」在別人的數據庫(基本上所有的網絡應用程序)
  • 純文本或簡單文本格式(WINDOWS的.ini /的.inf,Java的MANIFEST.MF,YAML等)
  • ...

單個程序可以使用多種方法,這取決於他們要存儲什麼。沒有統一的解決方案,因爲每個系統都有權衡(人類可讀性與封裝效率,隨機存取與順序存檔等),所以沒有適合每項任務的解決方案。

相關問題