DatabaseSpecification » 履歴 » バージョン 7
« 前 -
バージョン 7/9
(差分) -
次 » -
最新版
aoki yuji, 2016/05/01 15:07
データベース仕様¶
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. |
Trendテーブル
ユーザ数×問題数のレコードを持つテーブル(傾向管理)¶
列名 | 型 | 属性 | 説明 |
シリアルID | 整数 | serial | システムが一意に払い出す値。ユーザと問題の総当たり数だけ生成される。 |
ユーザSID | 整数 | ユーザの識別子 | |
問題番号 | 整数 | 問題の識別子 | |
正当回数 | 整数 | ユーザが問題を正答した回数 | |
誤答回数 | 整数 | ユーザが問題を誤答した回数 | |
ランク | 整数 | ランクは問題抽出アルゴリズムに従い随時更新される |
Historyテーブル
問題が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番最初の問題を取り出し出題する。