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番最初の問題を取り出し出題する。