ここで同様の性質の他の質問を調べましたが、それらはすべて、アプリの更新時に以前の sqlite db を置き換えることに関連しています。以前のすべてのアプリでそれを行ってきました。それらは本質的に参照であり、単純な置き換えで十分だったからです。
私が使用しているこの特定のアプリはクイズ ゲームであり、スコアを維持する必要があります。現時点では約 15 の質問がある 4 つのレベルがあり、後の更新でこれらが増える可能性があります。私はこれまでにこれをやったことがないので、好奇心が強く、初めてこれを正しい方法で行うつもりです. だからここに私の質問があります:
- SO の教祖が推奨するコンテンツを更新する好ましい方法は何ですか? バージョン番号 (おそらく DB 自体) を持ち、新しいアプリの最初の実行時に、新しいコンテンツがテーブルに挿入されますか?
- 挿入クエリを格納するための推奨される方法は何ですか? 実装ファイルでハードコーディングする必要がありますか?
PS。データベースを Documents ディレクトリにコピーして、アプリの更新後も保持されるようにします。
EDIT:クイズアプリは一種の「ロゴクイズ」レプリカであり、すべての質問のスコア(または回答/未回答の質問のステータス)を維持する必要があることを追加する必要がありました. したがって、最初のバージョンには 60 の質問があり、ユーザーが回答するとステータスが変更されます。
編集2:これは、私が最も懸念しているテーブル、質問テーブルの構造です:
_id (整数、プライマリ キー)、levelId (整数)、QuestionImage (Varchar)、CorrectAnswer (Varchar)、boolAnsweredCorrectly (整数)。
クイズはロゴスクイズのようなものです。画像があり、ユーザーは答えを入力する必要があります。入力された回答が DB の正解と一致する場合、boolAnsweredCorrectly が true に設定されます。私の主な関心事は boolAnsweredCorrectly (結果に応じて 0 または 1 になります) です。
編集 3: アプリの更新時にデータを挿入することについて話すときは、これを意味します。最初のバージョンに 60 の質問があったとします。2 番目のバージョンでは、40 の新しい問題が追加されています。そのため、ユーザーがアプリを 2 番目のバージョンに更新するときに、新しい 40 個の質問を質問テーブルに挿入する必要があります。これは、前の 60 の質問が台無しにされず、そのまま残るように追加されます。