gpt4 book ai didi

c++ - 在应用程序更新时更新部分数据库

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:58:43 25 4
gpt4 key购买 nike

我正在使用 C++ (Qt) 和 SQLite 开发应用程序。该应用程序安装了预定义的数据库,其中包含一些记录。用户可以使用自己的记录扩展数据库。我想知道如何实现应用程序的更新,即当安装新版本的应用程序时,我想删除数据库中的旧核心(预定义)记录,并替换为(插入)新的。出现这些问题:

  • 我是否应该使用 2 个具有相似架构的数据库,一个可以为用户修改,另一个是预定义的只读数据库(这样应用程序更新只是在旧数据库上复制新的预定义数据库)?
  • 或者我应该在数据库中有一个关于作者(应用程序或用户)的列,并以某种方式(以及如何?)在更新时删除旧的应用程序记录并插入新的记录?

有什么想法吗?谢谢

最佳答案

还有第三种变体:

  • 保留应用程序需要的原始表格。
  • 对于每个表:添加仅包含一列的第二个表。
  • 这些列引用了“真实”表的 PK。
  • 然后在新表中插入默认记录的键。
  • 更新时,只需要join对应的表,删除,再插入。

这极大地简化了查询(与第一个变体相比),并且您没有大多数记录不需要的额外列(我认为)。

如果您不想要额外的表格,我建议您使用第二种变体。第一个会强制您进行两次查询,然后将它们UNION。这对我来说听起来不对。

关于c++ - 在应用程序更新时更新部分数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5795790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com