テーブルの形式を画定する
今回はテーブル形式をどうするべきか考えてみます。
とりあえずUnixTimeを使用してIDを定めるとして、このIDもやはりAnkiを参考にして、
①カードID
②ノートID
③デッキID
は必須のものとして、更にノートID毎に④テンプレートIDを対応付けるという形式になりそうです。
またankiではnotesのfldsに、すべてのフィールドを特殊文字で区切って配置しているのですが、これにはフィールドが増えても対応しやすいというメリットがありそうです。
同期関連のデータはとりあえずは必要がなさそうですが、ivlやlapseといったスケジュール計算に必要になりそうです。
今のところは正答率と誤答率からインターバルを算出し、期限が到来したカードで早いものから表示していく(復習し忘れたカードを優先する)というアルゴリズムを考えています。
それを考えると必要になりそうなのは、
⑤インターバル(マイナス符号は分、プラス符号は日付)
⑥フィールド(問題文の本文)
⑦factor→ankiでは、「普通」をクリックしたときのインターバルの伸びを格納しています。例えばインターバルが10日の時に「普通」を選び、その時のfactorが2500なら、次の期日は25日後になるという具合です。
⑧チェックサム//ankiではこれでカードの重複判定を行っています
あたりでしょうか。
⑨カード参照//やっと出てきたオリジナル要素ですが、これは次の記事で説明します。