我正在製作一個軟件作爲個人項目。該軟件的目的是要像一個個人日記,它必須存儲大量的文本和數字。截至目前,它不會以任何方式連接到互聯網。我需要一個用於我的軟件的數據庫嗎?
我的問題是 - 我需要基於SQL等,或簡單的文件處理通過C/C++會做一個數據庫?
我正在製作一個軟件作爲個人項目。該軟件的目的是要像一個個人日記,它必須存儲大量的文本和數字。截至目前,它不會以任何方式連接到互聯網。我需要一個用於我的軟件的數據庫嗎?
我的問題是 - 我需要基於SQL等,或簡單的文件處理通過C/C++會做一個數據庫?
這一切都取決於你將要處理的數據。
如果您只是在尋找一種方法來放置一部分文本和數字,並且能夠稍後恢復,則只需一個簡單的文件處理程序即可。
但如果你將需要的數據集之間的關係,如果你想搜索的一個非常有效的方式將數據,或以更動態的方式處理它;數據庫可能是你最好的選擇。
雖然你並不需要設置運行MySQL守護程序,把它放在一個專用的服務器上,優化了狗屎了磁盤IO的等等等等。這將可能是由千是矯枉過正。
只要使用基於文件的數據庫驅動程序SQLite,就不會需要套接字連接,如果只有一個用戶一次訪問數據庫,那麼這將是一個很好的解決方案。
文檔鏈接
數據總是有且只有一個用戶?如果是這樣,像平面文件或sqlite這樣簡單的東西就可以正常工作。如果您需要併發訪問,請使用數據庫。
你不需要爲你描述一個數據庫,雖然這取決於你如何計劃開發應用程序,它可能使事情變得更容易爲你使用一個數據庫。當然,如果你打算在某個時候使用多用戶,數據庫將提供很多功能來促進這一點,這對於你自己來說是不可能的。
您還需要定義「大量的文本和數字」。如果它太大,那麼單獨的文件存儲可能不夠高效。聽起來不像個人數據日記那樣,但這是一般性考慮。
我會同時使用:文件lots of text and numbers
和SQLite數據庫保存一些額外的數據,是不是從普通可恢復文件(至少不使用擴展文件屬性),例如評級,REAL(不讀取FS)創建日期,標籤等
數據庫存儲也將讓您備份這些信息,訪問和同時修改的事情。
如果您的應用程序的概念模型都將有許多不同的實體以及它們之間的不同關係,則數據庫會幫助你很多,特別是如果你需要進行各種查詢您的數據。
我認爲SQLite是像你描述的應用程序的理想選擇。
似乎已經錯過了一點 - 不要掛斷使用關係數據庫(對於嵌入式SQL數據庫,大部分建議都是合理合理的)。
這可能是一個NoSQL風格的系統,在存儲數據的方式上具有更大的靈活性更合適 - 如果沒有更詳細的規範,很難判斷,但如果它是一個日誌,而不是一個僵化的結構,一個以靈活的方式存儲鍵/值對的系統可能會更好地匹配。
我不能夠提出嵌入NoSQL系統(我正在看SterlingDB但我是一個.NET開發人員,在尋找的東西爲Windows Phone 7)
也許一個簡單的XML文件是一種選擇爲你的場景? 當然,如果你在C++中工作,實現起來會更容易(更快),然後連接到數據庫(對於日記本來說,sql看起來好像過度)。