【Anki】デッキ自作時は「ID」フィールドも作るのがおすすめ
結論
IDを付けたほうが何かと便利であり、間違いも起きにくいのでIDを付けることをおすすめします。無くても問題はありません。
また、今後のデッキの追加を考え、IDは単純な数字よりも、「接頭辞+数字など」が好ましく思います。
「ID」有りの利点
データ修正・追加などの確認が容易になる
勉強時に間違いに気づいた場合や内容を追加したい場合、後でどのデータが間違っているか探し出して問題集と付き合わせるのは、意外と苦労します。このような場合に、IDがあるだけでデータを問題集と同じ順番に並び替えることが出来るので、特定が容易になります。
一列目に同じデータが続く場合に起こる、カードの意図しない上書きを防ぐ
例えばデフォルトでは、CSVインポートでの更新時にデータが以下のような形だった場合、1~3行目は同一のデータと見なされ、同じカードの内容で上書きされます。その結果同じカードが複数できてしまいます。(例として便宜上表形式にしています。実際のCSVデータはコンマで羅列されます)
CSV上で一列目に同じデータがあると…
【インポート前のCSVデータ】
1章 | 問題1-1 | 答え1-1 |
1章 | 問題1-2 | 答え1-2 |
1章 | 問題1-3 | 答え1-3 |
2章 | 問題2-1 | 答え2-1 |
インポートした結果、値が重複する行までのカードデータが同じになってしまいます。
【インポート後のカードデータ】
1章 | 問題1-3 | 答え1-3 |
1章 | 問題1-3 | 答え1-3 |
1章 | 問題1-3 | 答え1-3 |
2章 | 問題2-1 | 答え2-1 |
しかしその1列目にユニークなIDのフィールド列があれば、同一データでの上書きを防ぐことができます。CSV上のデータ通りに正しくインポートされます。
【インポート前のCSVデータ/インポート後のカードデータ】
ABC-1 | 1章 | 問題1-1 | 答え1-1 |
ABC-2 | 1章 | 問題1-2 | 答え1-2 |
ABC-3 | 1章 | 問題1-3 | 答え1-3 |
ABC-4 | 2章 | 問題2-1 | 答え2-1 |
これは、Ankiには以下のような仕様があるためです。
Ankiでテキストファイルをインポートする際、最初のフィールドを使用してノートがユニークかどうかを判断します。デフォルトでは、インポートするファイルの最初のフィールドが既存のノートのフィールドと一致し、かつその既存のノートがインポートするタイプと同じタイプである場合、既存のノートの他のフィールドがインポートするファイルの内容に基づいて更新されます。
同じノートタイプの最初のフィールド列では、同じ値を使わないさもなければ、最初のフィールド列の値が同じカードは全て同ーカードと見なされ同じ内容で全上書きされるということです。(場合によっては同じカードが何十枚も出来てしまいます。)
IDには、数字のみよりは、「接頭辞+番号」などのほうが良い
同ーシリーズの問題集をAnki化する場合などは特に、同じノートタイプを使うことが十分にありえると思います。
その場合に双方とも1からの数字のみだと、デフォルト設定では同じノート内でのIDが重複し、2つ目のデッキを作った際にさっくりと上書きされてしまいます。こういった不幸な事故を防ぐためにも「ID」フィールドを追加し、ユニークな値などを入れておくことをおすすめします。
ノートタイプが異なれば同じIDでも構いませんが、アプリの細かい仕様など忘れてしまうのが世の常だと思いますので、Anki内でIDは重複させないと単純に覚えておけば間違いがありません。
メディアファイル名も同様の管理をしたほうが良い
一方、1つのフォルダに入る関係上、メディアファイルについてはどのような場合でも同じ名前は許されません。
仮にデッキ1では「1.mp3」などの数字連番ファイルにしたとしましょう。デッキ2では同じファイル名が使えませんから数字にこだわるのであれば、デッキ1の最後以降の数字からの連番にしますか?それとも、「01.mp3」などと桁を増やしていきますか?何だか後になればなるほど命名ルールが複雑になっていきそうです。
このようなことから、後々のメンテナンス性を考えて、メディアファイル名もIDと同じ(接頭辞+番号など)にするなどが良さそうです。
まとめ
Ankiのデータを一から作るのは手間がかかって面倒ですが、全体の作業量に比べれば、その中でIDを付けることは大した手間でも有りません。恐らく1分もかからないでしょう。そしてあって困るというものでもありません。このような理由から、Ankiインポート用CSVデータにはユニークなIDを付けることをおすすめします。
PC版Ankiは以下から入手できます。