我即將寫一個小工具來組織和標記我的mp3。輕量級商店機制
什麼是存儲少量數據的最佳方式。更重要的是,有沒有數據庫存在,我不需要安裝客戶端/服務器環境,我只是包括圖書館,我很好?
我可以使用XML,但恐怕文件大小會變得很大並且很難處理,更不用說保持內存佔用小了。
感謝
編輯:我還沒有決定的語言,我想使獨立於平臺的我的決定。如果我不得不選擇,最有可能的是.NET,第二個Java,第三個C++。
我的歉意,這是一個Windows應用程序。
我即將寫一個小工具來組織和標記我的mp3。輕量級商店機制
什麼是存儲少量數據的最佳方式。更重要的是,有沒有數據庫存在,我不需要安裝客戶端/服務器環境,我只是包括圖書館,我很好?
我可以使用XML,但恐怕文件大小會變得很大並且很難處理,更不用說保持內存佔用小了。
感謝
編輯:我還沒有決定的語言,我想使獨立於平臺的我的決定。如果我不得不選擇,最有可能的是.NET,第二個Java,第三個C++。
我的歉意,這是一個Windows應用程序。
SQLITE如果你想關係數據庫的痛苦沒有服務器安裝或麻煩。
我會使用許多文本序列化格式之一。我個人認爲YAML 1.1是最強大的(對引用對象圖的內置支持)並且最容易被人讀取/修改(解析是一個熊,使用庫如PyYAML或JYaml或some .NET libaray)。
否則XML或JSON是足夠的文件格式。
無論您使用哪種格式,只要您關心磁盤使用情況就壓縮文件。如果你擔心內存使用情況,然後我怎麼沒看到你的序列化格式的問題...
你甚至可以使用XML,JSON,.ini文件...一個文本文件,甚至
另一種選擇是各種形式的Berkeley數據庫(例如,DB3,DB4,SleepyCat。)
看一看Prevayler的 - 這是一個序列化的持久性框架(使用XStream的等等,如果你想人閱讀你的數據),這真的很快,不需要註釋和「正常工作」。一些基本信息:
我沒有用它很多1000年代,但它的sooo好得多用於小項目(持續任何序列化的對象是太好)
哦 - 「?你運行的是什麼平臺」爲每一個說法,Prevayler(JAVA)有/有端口,相當多的平臺,但我不能找到一個體面的名單:(我記得有大約5-7,但是隻能記住.NET。
如果您打算在您的程序確實能夠在內存中存儲所有內容,那麼使用您編寫的基本load()和save()函數序列化文件將會很好,完整的數據庫。
在Java中,可以使用標準的序列化(或可以序列化XML和XML,使它有點人類可讀和可編輯)。
它不應該影響你的記憶足跡,因爲它只是保存和恢復你的對象。你不會得到交易和隨機訪問和查詢以及所有好東西。
我會建議一個類似於SQL的數據庫(如SQLLite)。今天你的需求可能會讓一個完整的SQL數據庫看起來很傻。但是你永遠不知道這個「小項目」多年來會增長多少。當它發展到必須擁有SQL引擎的地步時,你會很高興你不只是序列化一些Java對象或以JSON格式存儲東西。
在Windows上,您可以使用內置的esent數據庫引擎。這裏是你可以從C使用++
還有,你可以從C#代碼使用管理互操作層的API:
與XML的主要問題可能不會文件大小,但是XML並不適合搜索和隨機訪問(特別是在編寫時)。 – 2008-12-22 22:42:28
在你說出你正在使用的操作系統和語言之前,沒有人可以回答這個問題。 – 2008-12-22 22:44:01
因此,既然.NET和Java是你的兩個主要選擇,我認爲「輕量級」意味着大致「不希望服務器正在運行」而不是「每一個位都很重要!」。 – 2008-12-23 22:04:23