我正在开发Qt/QML/MySQL应用程序,我希望实现软件的最大定制,因此我已经将应用程序的设置打包到SQLite3数据库文件中。我有几个硬编码到应用程序中的SQLite3脚本,但我的问题是,最好将这些脚本嵌入到代码本身中,还是应该将物理上的SQLite3文件放在某些设置目录中,然后从应用程序开始加载它们呢?
发布于 2016-02-03 14:33:16
是将这些脚本嵌入到代码本身更好,还是应该将物理上的SQLite3文件放在某个设置目录中,该目录从应用程序开始加载它们?
将这些SQLite3文件放置在某些设置目录中将使应用程序的用户或安装应用程序的管理员能够修改和/或操作它们。所以你的问题的正确答案是:这取决于你是否允许这样做,或者你是否想阻止这一点。有些软件允许其他人进行这种定制是非常好的,而有些软件允许其他人这样做是危险的。所以,选择你的应用程序属于什么类别。
此外,如果您有几个不同的SQLite数据库文件,那么每个文件都包含模式信息。因此,当您的软件的后续版本或版本需要进行模式更改时,请确保不必手动逐个更改每个SQLite文件。另一个因素是版本控制:二进制文件不太适合于diff/merge工具、SQL脚本或文本代码。因此,即使您决定将设置的二进制SQLite文件直接分发给您的最终用户,并且不将创建代码直接嵌入到您的应用程序中,您至少也应该将这些代码放在某种内部生成器工具中,该工具保存在版本控制中,而不是二进制文件中。
发布于 2016-02-03 11:49:10
从用户的角度来看,最好的方法是检查是否存在一个设置,如果它不存在,就创建一个默认设置。(同样适用于DB:如果数据库不存在,则创建它)
这允许您的DB中始终存在所有设置,允许所有设置都自定义,而不必担心您将破坏一个alreayd0 0自定义设置,并使用户不必担心在安装时设置设置文件。
您还可以在现有安装中添加新设置,而不必担心。
https://softwareengineering.stackexchange.com/questions/309143
复制相似问题