2011-12-16 84 views
1

我正在制作一个软件作为个人项目。该软件的目的是要像一个个人日记,它必须存储大量的文本和数字。截至目前,它不会以任何方式连接到互联网。我需要一个用于我的软件的数据库吗?

我的问题是 - 我需要基于SQL等,或简单的文件处理通过C/C++会做一个数据库?

回答

5

这一切都取决于你将要处理的数据。

如果您只是在寻找一种方法来放置一部分文本和数字,并且能够稍后恢复,则只需一个简单的文件处理程序即可。

但如果你将需要的数据集之间的关系,如果你想搜索的一个非常有效的方式将数据,或以更动态的方式处理它;数据库可能是你最好的选择。

虽然你并不需要设置运行MySQL守护程序,把它放在一个专用的服务器上,优化了狗屎了磁盘IO的等等等等。这将可能是由千是矫枉过正。

只要使用基于文件的数据库驱动程序SQLite,就不会需要套接字连接,如果只有一个用户一次访问数据库,那么这将是一个很好的解决方案。

文档链接

0

数据总是有且只有一个用户?如果是这样,像平面文件或sqlite这样简单的东西就可以正常工作。如果您需要并发访问,请使用数据库。

1

你不需要为你描述一个数据库,虽然这取决于你如何计划开发应用程序,它可能使事情变得更容易为你使用一个数据库。当然,如果你打算在某个时候使用多用户,数据库将提供很多功能来促进这一点,这对于你自己来说是不可能的。

0

您还需要定义“大量的文本和数字”。如果它太大,那么单独的文件存储可能不够高效。听起来不像个人数据日记那样,但这是一般性考虑。

0

我会同时使用:文件lots of text and numbers和SQLite数据库保存一些额外的数据,是不是从普通可恢复文件(至少不使用扩展文件属性),例如评级,REAL(不读取FS)创建日期,标签等

数据库存储也将让您备份这些信息,访问和同时修改的事情。

0

如果您的应用程序的概念模型都将有许多不同的实体以及它们之间的不同关系,则数据库会帮助你很多,特别是如果你需要进行各种查询您的数据。

我认为SQLite是像你描述的应用程序的理想选择。

0

似乎已经错过了一点 - 不要挂断使用关系数据库(对于嵌入式SQL数据库,大部分建议都是合理合理的)。

这可能是一个NoSQL风格的系统,在存储数据的方式上具有更大的灵活性更合适 - 如果没有更详细的规范,很难判断,但如果它是一个日志,而不是一个僵化的结构,一个以灵活的方式存储键/值对的系统可能会更好地匹配。

我不能够提出嵌入NoSQL系统(我正在看SterlingDB但我是一个.NET开发人员,在寻找的东西为Windows Phone 7)

0

也许一个简单的XML文件是一种选择为你的场景? 当然,如果你在C++中工作,实现起来会更容易(更快),然后连接到数据库(对于日记本来说,sql看起来好像过度)。

相关问题