#contents

* データベース情報

** version

データベースのバージョン情報

| version | subversion |
|DB のバージョン番号|DB のサブバージョン番号|

:DB のバージョン:"7"〜
:DB のサブバージョン番号:"1"〜

 CREATE TABLE version (
   version INTEGER NOT NULL,
   subversion INTEGER NOT NULL
 )




* 問題集データベース

|''テーブル名''|''内容''|''PRIMARY KEY への NULL autoimcrement 挿入''|
|folder|問題集やフォルダとそれが含まれているフォルダの対応表|×|
|section|問題集と問題|×|
|question|問題とその内容|○|
|element_info|問題集IDやフォルダIDと、問題集名、作成日、更新日、その他の情報|○|

** folder

| id | fid |
|問題集IDまたはフォルダID|id が含まれる先のフォルダ|

 CREATE TABLE folder (
   id INTEGER PRIMARY KEY NOT NULL REFERENCES element_info(id),
   fid INTEGER NOT NULL REFERENCES element_info(id)
 )

ルートフォルダの fid には 0 を用いる。

** section

| id | qid |
|問題集ID|問題ID|

 CREATE TABLE section (
   id INTEGER NOT NULL REFERENCES element_info(id),
   qid INTEGER NOT NULL REFERENCES question(id)
 )

** question

|id|question|answer|hint|description|wavfilename|pronounce|mode|
|問題ID|問題文|正解文|ヒント|説明文|WAV ファイル|発音記号|学習可能モード|

:mode:「学習可能モード」がフラグとして格納される。LSB が mode=0 である

 CREATE TABLE question (
   id INTEGER PRIMARY KEY,
   question TEXT NOT NULL,
   answer TEXT NOT NULL,
   hint TEXT NOT NULL,
   description TEXT NOT NULL,
   wavfilename TEXT NOT NULL,
   pronounce TEXT NOT NULL,
   mode INTEGER NOT NULL
 )

** element_info

| id | type | name | author | writer | description | ctime | utime |
|問題集IDまたはフォルダID|フォルダ(0)or問題集(1)の区別|名前|著作権者|作成者|説明文|作成日|更新日|

 CREATE TABLE element_info (
   id INTEGER PRIMARY KEY,
   type INTEGER NOT NULL,
   name TEXT NOT NULL,
   author TEXT NOT NULL,
   writer TEXT NOT NULL,
   description TEXT NOT NULL,
   ctime INTEGER NOT NULL,
   utime INTEGER NOT NULL
 )

* 履歴データベース

|''テーブル名''|''内容''|''PRIMARY KEY への NULL autoimcrement 挿入''|
|log_id|ユーザと問題集、モードの組に与えられる履歴ID|○|
|question_log|各ユーザの各問題に対する履歴情報|×|
|last_reply_questions|各ユーザの各問題集における最後に学習した問題群|×|
|last_mistake_questions|各ユーザの各問題集における最後に間違えた問題群|×|
|looped_questions|各ユーザの各問題集における今回のループで学習済み問題群|×|
|section_log|各ユーザの各問題集に対する履歴情報|×|
|user_log|各ユーザの履歴情報|×|
|user_info|各ユーザの情報|○|
|netrank_info|各ユーザのインターネットランキングに関する情報|×|

** log_id

| lid | uid | eid | mid |
|履歴ID|ユーザID|問題集ID|モードID|

 CREATE TABLE log_id (
   lid INTEGER PRIMARY KEY REFERENCES log_id(lid),
   uid INTEGER NOT NULL,
   eid INTEGER NOT NULL,
   mid INTEGER NOT NULL,
   UNIQUE( uid, eid, mid )
 )


** question_log

| qid | lid | nc1 | ni1 | nc2 | ni2 | nc1pm | ni1pm | nc2pm | ni2pm | LastStudyTime | LastMistakeTimeOnFirstReply |ReplySec|
| 問題ID | 履歴ID | 正解数 | 不正解数 | 正解数(再回答) | 不正解数(再回答) | 正解数の調整値 | 不正解数の調整値 | 正解数(再回答)の調整値 | 不正解数(再回答)の調整値 | 最終学習日時 | 最終不正解日時 | 学習時間 |

 CREATE TABLE question_log (
   qid INTEGER NOT NULL REFERENCES question(id),
   lid INTEGER NOT NULL REFERENCES log_id(lid),
   nc1 INTEGER NOT NULL,
   ni1 INTEGER NOT NULL,
   nc2 INTEGER NOT NULL,
   ni2 INTEGER NOT NULL,
   nc1pm INTEGER NOT NULL,
   ni1pm INTEGER NOT NULL,
   nc2pm INTEGER NOT NULL,
   ni2pm INTEGER NOT NULL,
   LastStudyTime INTEGER NOT NULL,
   LastMistakeTimeOnFirstReply INTEGER NOT NULL,
   ReplySec INTEGER NOT NULL,
   PRIMARY KEY(qid,lid)
 )

** last_reply_questions

| lid | qid |
|履歴ID|問題ID|

 CREATE TABLE last_reply_questions (
   lid INTEGER NOT NULL REFERENCES log_id(lid),
   qid INTEGER NOT NULL REFERENCES question(id)
 )

** last_mistake_questions

| lid | qid |
|履歴ID|問題ID|

 CREATE TABLE last_mistake_questions (
   lid INTEGER NOT NULL REFERENCES log_id(lid),
   qid INTEGER NOT NULL REFERENCES question(id)
 )

** looped_questions

| lid | qid |
|履歴ID|問題ID|

 CREATE TABLE looped_questions (
   lid INTEGER NOT NULL REFERENCES log_id(lid),
   qid INTEGER NOT NULL REFERENCES question(id)
 )

** element_log

| lid | FirstReplyDate | nRun | TotalReplySec | TotalStrokes | nAccomplish |
|履歴ID|初回学習時刻|学習回数|総学習時間|総ストローク数|達成回数|

 CREATE TABLE element_log (
   lid INTEGER PRIMARY KEY NOT NULL REFERENCES log_id(lid),
   FirstReplyDate INTEGER NOT NULL,
   nRun INTEGER NOT NULL,
   TotalReplySec INTEGER NOT NULL,
   TotalStrokes INTEGER NOT NULL,
   nAccomplish INTEGER NOT NULL
 )

** user_log

| uid | 
|ユーザID|

 CREATE TABLE user_log (
   uid INTEGER PRIMARY KEY REFERENCES user_log(uid),
 )

必要に応じて作る予定

** user_info

| uid | name | 
|ユーザID|名前|

 CREATE TABLE user_info (
   uid INTEGER PRIMARY KEY,
   name TEXT NOT NULL UNIQUE
 )

|netrank_info|各ユーザのインターネットランキングに関する情報|×|

潟若若菴遵

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS