過去問を追加(過去問を追加し、古い問題を削除)すると、それまで保存していたすべてのデータを初期化(削除)していました。
他のデータは、心機一転の意味もあり初期化しても良いかと思いましたが、「要チェック問題」(☆マーク)が消えてしまうことは、ずっと気になっていました。
ユーザーとしては、それまでの学習の結果、重要と思った問題に付けた ☆ マークが消えてしまうのです。
これまでの保存方法
☆の位置を「配列の順番」で記録していました。
更新前:
1番目: 第55回の問題 ☆
2番目: 第56回の問題
3番目: 第57回の問題 ☆
過去問の更新では、古い回の問題を削除して新しい回の問題を追加します。すると問題の並び順が変わります。
更新後(第55回を削除、第58回を追加):
1番目: 第56回の問題 ← 昔の2番目
2番目: 第57回の問題 ← 昔の3番目
3番目: 第58回の問題(新しく追加)
「1番目に☆」という記録は、今は第56回の問題を指してしまう
単に新しい回を追加するだけなら順番は変わりませんが、古い回を削除して入れ替えると、位置がずれてしまいます。
これまではこれを解消するうまい方法がわかりませんでした。
今回もAIに相談しました。
改良方法
問題そのものに「ID番号」を付けました。
【新しい方法】
1番目の問題: ID = "Q_055" ☆
2番目の問題: ID = "Q_056"
3番目の問題: ID = "Q_057" ☆
「Q_055 と Q_057 に☆を付ける」という記録方法に変更しました。これなら、問題の並び順が変わっても、ID番号は問題に紐付いたままです。
更新後:
1番目: ID = "Q_056"(第56回)
2番目: ID = "Q_057"(第57回)← ☆が復元される
3番目: ID = "Q_058"(新しく追加)
第55回は削除されたので「Q_055」の☆は自然に消える。
「Q_057」は残っているので、位置が変わっても正しく復元される。
これにより、過去問を更新しても☆が消えず、集計表の☆数も正しく表示されるようになりました。