簡體   English   中英

我的軟件需要數據庫嗎?

[英]Do I need a database for my software?

我正在將軟件作為個人項目。 該軟件旨在充當個人日記,必須存儲大量文本和數字。 到目前為止,它不會以任何方式連接到互聯網。

我的問題是-我需要基於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對日記imho來說似乎是過分殺傷力的)。

暫無
暫無

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

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