DatabaseSpecification » 履歴 » バージョン 5

« 前 - バージョン 5/9 (差分) - 次 » - 最新版
aoki yuji, 2016/05/01 15:05


データベース仕様

SQLiteにて下記のデータベースを定義し、PHPから利用します。


WhiskyExaminationデータベース

Questionテーブル

問題集に相当するテーブル。

列名 属性 説明
id 整数 serial 問題の識別子
question 文字列 問題文
correct 文字列 正解となる選択肢群。JSONの配列形式。ex) ["answer1", "answer2", "answer3"]
incorrect 文字列 不正解となる選択肢群。JSONの配列形式。ex) ["answer1", "answer2", "answer3"]

Accountテーブル

ユーザごとの認証情報を記録するテーブル。

列名 属性 説明
sid 整数 serial アカウントの内部的識別子。
id 文字列 unique アカウントの識別子。ユーザが指定する任意の文字列。ex. g0947424
hash 文字列 パスワードのハッシュ値。
firstname 文字列 ユーザの名前。ex. 太郎
lastname 文字列 ユーザの苗字。ex. 山田
permission 文字列 ユーザの権限種別。「normal」「admin」
memo 文字列 備考欄

*****テーブル

ユーザごとの学習状況/得意・苦手把握/etc... を記録するテーブル。

列名 属性 説明
T.B.D.

ユーザ数×問題数のレコードを持つテーブル(傾向管理)

列名 属性 説明
シリアルID 整数 serial システムが一意に払い出す値。ユーザと問題の総当たり数だけ生成される。
ユーザSID 整数 ユーザの識別子
問題番号 整数 問題の識別子
正当回数 整数 ユーザが問題を正答した回数
誤答回数 整数 ユーザが問題を誤答した回数
ランク 整数 ランクは問題抽出アルゴリズムに従い随時更新される

問題が1回解答されたら1レコード生成するテーブル(履歴管理)

列名 属性 説明
シリアルID 整数 serial システムが一意に払い出す値。問題が1回解答されたら1つ値を払い出す。連番を想定。
ユーザSID 整数 ユーザの識別子
日付 文字列 問題が解答された日付
問題番号 整数 問題の識別子
正誤 整数 正答の場合:1 誤答の場合:0

問題抽出アルゴリズムの考え方

列名 属性 説明
ランク 正答率(%) 出題率(%) 問題抽出個数(コ)
5 100-81 10 1
4 80-61 30 3
3 60-41 50 5
2 40-21 70 7
1 20-0 90 9

→問題抽出個数に従い出題問題候補リストを生成する
 リストをシャッフルし1番最初の問題を取り出し出題する。