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