我的软件需要数据库吗?

时间:2011-12-16 20:41:50

标签: database

我正在制作一个软件作为个人项目。该软件旨在表现为个人日记,必须存储大量文本和数字。到目前为止,它不会以任何方式连接到互联网。

我的问题是 - 我是否需要基于SQL等的数据库或通过C / C ++进行简单的文件处理?

8 个答案:

答案 0 :(得分:5)

这完全取决于您将如何处理数据。

如果您只想找到一种方法来放弃一部分文本和数字,并且能够稍后将其恢复,那么简单的文件处理程序就足够了。

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

虽然你不需要设置一个运行MySQL的守护进程,把它放在一个专用的服务器上,优化磁盘IO等的糟糕等等。这可能会超过一千。

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

文档链接

答案 1 :(得分:1)

您不需要为所描述的内容建立数据库,但根据您计划开发应用程序的方式,可能会使您更容易使用数据库。当然,如果你计划在某个时候去多用户,数据库将提供许多功能来促进这一点,这对你来说是非常有用的。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

数据库存储还允许您同时备份这些信息,访问和修改内容。

答案 5 :(得分:0)

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

我认为SQLite非常适合你所描述的应用程序。

答案 6 :(得分:0)

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

可能是NoSQL样式系统在数据存储方式方面具有更大的灵活性更合适 - 如果没有更详细的规范,很难判断,但如果它是一个具有可变要求的日记,取决于进入而不是僵化的结构,以灵活的方式存储键/值对的系统可能是更好的匹配。

我无法建议可嵌入的NoSQL系统(我正在查看SterlingDB但我是.NET开发人员,正在寻找Windows Phone 7的东西)

答案 7 :(得分:0)

也许一个简单的XML文件是您的方案的选项? 当然,如果你使用C ++工作更容易(更快)实现然后连接到数据库(sql看起来像是日记imho的过度杀伤)。