我在这里遇到了类似性质的其他问题,但它们都与在应用程序更新时替换以前的 sqlite db 有关。我一直在为所有以前的应用程序这样做,因为它们本质上是参考的,并且一个简单的替换就足够了。
我正在使用的这个特定应用程序是一个问答游戏,需要保持分数。目前有 4 个级别,大约 15 个问题,在以后的更新中,这些可能会增加。由于我以前从未这样做过,我很好奇并打算第一次以正确的方式做到这一点。所以这是我的疑问:
- 更新 SO 大师推荐的内容的首选方式是什么?是否有版本号(可能在数据库本身中)并且在新应用程序首次运行时,新内容被插入到表中?
- 存储插入查询的首选方式是什么?它们是否应该在实现文件中硬编码?
PS。我将数据库复制到 Documents 目录,因此它会在应用程序更新时持续存在。
编辑:我应该补充一点,测验应用程序是一种“徽标测验”副本,其中需要维护所有问题的分数(或将被回答/未回答的问题的状态)。所以第一个版本有 60 个问题,它们的状态会随着用户的回答而改变。
编辑2:这是我最关心的表的结构,问题表:
_id (Integer, PRIMARY Key), levelId (Integer), QuestionImage (Varchar), CorrectAnswer(Varchar), boolAnsweredCorrectly(Integer)。
测验就像徽标测验。有一张图片,用户必须输入答案。如果键入的答案与 DB 中的正确答案匹配,则 boolAnsweredCorrectly 设置为 true。我主要关心的是 boolAnsweredCorrectly (根据结果为 0 或 1)。
编辑 3:当我谈到在应用程序更新时插入数据时,我的意思是这个。假设第一个版本有 60 个问题。在第二个版本中增加了 40 个新问题。因此,当用户将应用程序更新到第二个版本时,需要将新的 40 个问题插入问题表中。这是以这样的方式添加的,即之前的 60 个问题不会被弄乱并保持完整。