過去問を新しく追加するとき、「要チェック問題」を引き継ぐ

過去問を追加(過去問を追加し、古い問題を削除)すると、それまで保存していたすべてのデータを初期化(削除)していました。


他のデータは、心機一転の意味もあり初期化しても良いかと思いましたが、「要チェック問題」(☆マーク)が消えてしまうことは、ずっと気になっていました。


ユーザーとしては、それまでの学習の結果、重要と思った問題に付けた ☆ マークが消えてしまうのです。


これまでの保存方法

☆の位置を「配列の順番」で記録していました。

更新前:

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」は残っているので、位置が変わっても正しく復元される。

これにより、過去問を更新しても☆が消えず、集計表の☆数も正しく表示されるようになりました。