■通常の過去問追加では、ほぼ全部残る
年に1〜2回、新しい年度の過去問を追加するだけの更新なら、解答記録も、要チェックの☆も、AIに生成させた解説も、全部そのまま残ります。消えるのは模擬試験と腕試し模擬試験の記録だけです。
これは元々「消えても仕方ない」と割り切っている部分です。模擬試験は、過去問の在庫から毎回組み直す仕組みになっていて、内容自体が入れ替わる。だから記録が残っていても、次に開いたときには別の問題が並んでいることになる。それなら残しておいても仕方がない、という判断です。
つまり通常運用では「ほぼ全部残るが、模擬だけリセットされる」というのが基本形になりました。これが今回の一連の改修でいちばん実現したかったことです。
■教育課程が変わるときだけ、事情が変わる
一方で、数年に一度、試験の教育課程そのものが変わって、出題科目の構成が変わることがあります。科目が統合されたり、廃止されたり、新設されたり。
このときだけは、解答記録も、要チェックの☆も、初期状態に戻すことにしました。
理由はどちらも似ています。科目の並び順や中身が変わってしまうと、「この記録がどの科目の何問目のものか」という対応関係そのものが崩れる。解答記録については、無理に残そうとすると間違った科目に間違った記録が表示される、という前回さんざん苦しんだのと同じ事故を引き起こしかねません。
☆についても、当初は「問題そのものの固有番号で紐づければ、科目の並びが変わっても引き継げるはず」と考えて、実際にその仕組みを作りました。AIの解説機能で先にやっていた手法を応用した形です。
ところが、検証したところ、出題対象外となった科目を「要チェック」や「模擬試験」の対象から除外するための仕組みが別にあることが分かりました。
この仕組みでは科目の識別記号の先頭に印を付けるだけなので、以前その科目に付いていた「☆」は残ってしまいます。
さらに、対象外になった科目は登録ボタンも表示されなくなるため、ユーザー自身で「☆」を外すこともできません。
つまり、教育課程が変わった際に、
「古い教育課程の科目に付いていた☆を、新しい教育課程のどの科目に引き継ぐのか?」
という問題が発生します。
新しい教育課程には適切な引き継ぎ先がないため、最終的に、教育課程が変更された場合は「☆」も含めて初期化する仕様としました。
なお、当初作成した対象外科目の識別・除外機能は、現在の動作に悪影響がないため、そのまま残しています。
■それでもAIの解説だけは残る
唯一、教育課程が変わっても残るのがAIの解説です。
これは元々、科目の並びではなく問題そのものに振られた固有の番号で記録している仕組みが先に入っていたからです。科目構成が変わって解答記録や☆をリセットしても、対象から外れた問題自体がデータとして残っている限り、その問題に紐づいた解説はきちんと引き継がれます。
技術的な話をすると、ユーザー側の操作としては「解答記録と☆をリセットする」という指示を出すだけで、AIの解説はその指示の対象に含めていない。だから自動的に残る、という形です。
■整理するとこうなります