c++ - 什么时候值得使用数据库?

标签 c++ sql database qt user-interface

我有一个与数据库有关的问题,什么时候值得深入研究。我主要是一名嵌入式工程师,但我正在编写一个使用 Qt 与我们的 Controller 交互的应用程序。

我们处于一个奇怪的点,我们有足够的数据,可以实现一个数据库(大约 700 多个项目并且还在增长)来管理所有内容,但我不确定现在是否值得花时间处理.我使用从 excel 生成并解析的文件来实现 GUI 没有问题,但即使使用 VBA 脚本,它也会变得乏味且难以跟踪。我一直在尝试使用 Microsoft Access 将我们的数据转换为更易于管理的应用程序端,这似乎运行良好。如果成功的话,我离使用 SQL 数据库和使用 Qt 库来访问和修改它只有一步(或几个)的距离。

我没有太多在这个级别管理数据的经验,我很好奇解决这个问题的最佳方法是什么。那么在这种情况下使用数据库有哪些真正的好处呢?我意识到其中大部分内容可能是非常特定于应用程序的,但一些关于如何跨越嵌入式/应用程序编程线的一般性想法和建议会有所帮助。

这不是将数据库放入嵌入式项目中。它也不是通常使用较大数据库的业务类型应用程序。我正在为桌面上的单个用户设计一个 GUI,以便与微 Controller 交互以进行监控和配置。


我决定使用 SQLite。您可以使用我在开始这个项目时并没有真正考虑过的数据做一些非常有趣的事情。

最佳答案

数据库在以下情况下是值得的:

  1. 您的应用程序演变为 数据驱动的执行形式。
  2. 您正在花时间设计和 开发外部数据存储 结构。
  3. 在应用程序之间共享数据或 组织(包括个人 人)
  4. 数据不再短小, 简单。
  5. 数据复制

向数据驱动执行演进
当数据在变化但执行没有变化时,这是数据驱动程序或部分程序是数据驱动的标志。一组配置选项是数据驱动功能的标志,但整个应用程序可能不是数据驱动的。在任何情况下,数据库都可以帮助管理数据。 (数据库库或应用程序不必像 Oracle 那样庞大,但可以像 SQLite 那样精简和简陋)。

外部数据结构的设计与开发
Stack Overflow 发布有关序列化或将树和列表转换为使用文件的问题,这很好地表明您的程序已经使用数据库。此外,如果您花费大量时间设计算法以将数据存储在文件中或设计文件中的数据,那么是研究数据库使用情况的好时机。

共享数据
无论您的应用程序是与另一个应用程序、另一个组织还是另一个人共享数据,数据库都可以提供帮助。通过使用数据库,更容易实现数据一致性。问题调查中的一大问题是团队没有使用相同的数据。客户可以使用一组数据;验证团队另一个和开发使用不同的数据集。数据库使数据版本化更容易,并允许实体使用相同的数据。

复杂数据
程序开始使用硬编码数据的小表。这演变为将动态数据与 map 、树和列表一起使用。有时数据会从简单的两列扩展到 8 列或更多列。数据库理论和数据库可以减轻组织数据的复杂性。让数据库担心管理数据并释放您的应用程序和开发时间。毕竟,数据的管理方式并不像数据的质量和可访问性那么重要。

数据复制
通常,当数据增长时,重复数据的吸引力越来越大。数据库和数据库理论可以最大限度地减少数据的重复。数据库可以配置为警告重复。

转向使用数据库需要考虑许多因素。其中包括但不限于:数据复杂性、数据重复(包括部分数据)、项目期限、开发成本和许可问题。如果您的程序可以使用数据库更有效地运行,那么就这样做。数据库还可以节省开发时间(和金钱)。除了管理数据,您和您的应用程序还可以执行其他任务。将数据管理交给专家。

关于c++ - 什么时候值得使用数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2648802/

相关文章:

c++ - SetLineSpacing() 在 DirectWrite 中不起作用 - 为什么?

mysql - Wordpress SQL - 多个 WHERE 子句

sql - 错误: Could not create constraint SQL Server 2008

java - mysql 的一句话中可能有 3 个插入吗?

java - 从java问题连接到数据库

c++ - 只有一个没有主体的函数的类的大小

c++ - 使用 Win API 确定可执行文件的实例是否已在运行

c++ - 使用 C++ 解析文件,将值加载到结构中

mysql - 需要分隔单词的字符时,如何在MySQL中进行模糊搜索?

database - 使用签名树的生产应用程序的任何示例?