テーブルの形式を画定する

今回はテーブル形式をどうするべきか考えてみます。

とりあえずUnixTimeを使用してIDを定めるとして、このIDもやはりAnkiを参考にして、

①カードID

②ノートID

③デッキID

は必須のものとして、更にノートID毎に④テンプレートIDを対応付けるという形式になりそうです。

またankiではnotesのfldsに、すべてのフィールドを特殊文字で区切って配置しているのですが、これにはフィールドが増えても対応しやすいというメリットがありそうです。

同期関連のデータはとりあえずは必要がなさそうですが、ivlやlapseといったスケジュール計算に必要になりそうです。

今のところは正答率と誤答率からインターバルを算出し、期限が到来したカードで早いものから表示していく(復習し忘れたカードを優先する)というアルゴリズムを考えています。

それを考えると必要になりそうなのは、

⑤インターバル(マイナス符号は分、プラス符号は日付)

⑥フィールド(問題文の本文)

⑦factor→ankiでは、「普通」をクリックしたときのインターバルの伸びを格納しています。例えばインターバルが10日の時に「普通」を選び、その時のfactorが2500なら、次の期日は25日後になるという具合です。

チェックサム//ankiではこれでカードの重複判定を行っています

あたりでしょうか。

⑨カード参照//やっと出てきたオリジナル要素ですが、これは次の記事で説明します。