Здесь я рассмотрел другие вопросы аналогичного характера, но все они связаны с заменой предыдущей базы данных sqlite при обновлении приложения. Я делал это для всех предыдущих приложений, поскольку они носили справочный характер, и достаточно было простой замены.
Это конкретное приложение, с которым я работаю, представляет собой игру-викторину, и счет должен поддерживаться. На данный момент есть 4 уровня с примерно 15 вопросами, и в более позднем обновлении их может быть больше. Поскольку я никогда не делал этого раньше, мне любопытно, и я намерен сделать это правильно с первого раза. Итак, вот мои запросы:
- Каков предпочтительный способ обновления контента, который рекомендуют гуру SO? Должен ли он иметь номер версии (возможно, в самой БД) и при первом запуске нового приложения новый контент вставляется в таблицу?
- Каков предпочтительный способ хранения запросов на вставку? Должны ли они быть жестко закодированы в файле реализации?
PS. Я копирую базу данных в каталог Documents, поэтому она сохраняется при обновлении приложения.
РЕДАКТИРОВАТЬ: я должен был добавить, что приложение викторины является своего рода копией «викторины логотипов», в которой необходимо поддерживать баллы (или статус вопроса, на который будет дан ответ/без ответа) всех вопросов. Итак, в первой версии 60 вопросов, и их статусы меняются по мере того, как пользователь отвечает на них.
РЕДАКТИРОВАТЬ 2: Это структура таблицы, которая меня больше всего беспокоит, таблица вопросов:
_id (целое число, ПЕРВИЧНЫЙ ключ), levelId (целое число), QuestionImage (Varchar), CorrectAnswer (Varchar), boolAnsweredCorrectly (целое число).
Викторина похожа на Logos Quiz. Есть изображение, и пользователь должен ввести ответ. Если введенный ответ соответствует правильному ответу в БД, для boolAnsweredCorrectly устанавливается значение true. Меня больше всего беспокоит boolAnsweredCorrectly (что может быть 0 или 1 в зависимости от результата).
РЕДАКТИРОВАТЬ 3: Когда я говорю о вставке данных при обновлении приложения, я имею в виду это. Предположим, в первой версии было 60 вопросов. Во второй версии добавлено 40 новых вопросов. Таким образом, когда пользователь обновляет приложение до второй версии, в таблицу вопросов необходимо вставить новые 40 вопросов. Это должно быть добавлено таким образом, чтобы предыдущие 60 вопросов не перепутались и остались нетронутыми.