DatabaseSpecification » 履歴 » バージョン 5

aoki yuji, 2016/05/01 15:05

1 1 MIYAZAKI Masafumi
h1. データベース仕様
2 1 MIYAZAKI Masafumi
3 2 MIYAZAKI Masafumi
SQLiteにて下記のデータベースを定義し、PHPから利用します。
4 1 MIYAZAKI Masafumi
5 2 MIYAZAKI Masafumi
{{>toc}}
6 2 MIYAZAKI Masafumi
7 2 MIYAZAKI Masafumi
----
8 2 MIYAZAKI Masafumi
9 2 MIYAZAKI Masafumi
h2. WhiskyExaminationデータベース
10 2 MIYAZAKI Masafumi
11 2 MIYAZAKI Masafumi
h3. Questionテーブル
12 2 MIYAZAKI Masafumi
13 2 MIYAZAKI Masafumi
問題集に相当するテーブル。
14 2 MIYAZAKI Masafumi
15 1 MIYAZAKI Masafumi
| 列名 | 型 | 属性 | 説明 |
16 1 MIYAZAKI Masafumi
| id | 整数 | serial | 問題の識別子 |
17 1 MIYAZAKI Masafumi
| question | 文字列 | | 問題文 |
18 1 MIYAZAKI Masafumi
| correct | 文字列 | | 正解となる選択肢群。JSONの配列形式。ex) ["answer1", "answer2", "answer3"] |
19 1 MIYAZAKI Masafumi
| incorrect | 文字列 | | 不正解となる選択肢群。JSONの配列形式。ex) ["answer1", "answer2", "answer3"] |
20 2 MIYAZAKI Masafumi
21 2 MIYAZAKI Masafumi
h3. Accountテーブル
22 2 MIYAZAKI Masafumi
23 3 MIYAZAKI Masafumi
ユーザごとの認証情報を記録するテーブル。
24 3 MIYAZAKI Masafumi
25 3 MIYAZAKI Masafumi
| 列名 | 型 | 属性 | 説明 |
26 3 MIYAZAKI Masafumi
| sid | 整数 | serial | アカウントの内部的識別子。 |
27 3 MIYAZAKI Masafumi
| id | 文字列 | unique | アカウントの識別子。ユーザが指定する任意の文字列。ex. g0947424 |
28 3 MIYAZAKI Masafumi
| hash | 文字列 | | パスワードのハッシュ値。 |
29 3 MIYAZAKI Masafumi
| firstname | 文字列 | | ユーザの名前。ex. 太郎 |
30 3 MIYAZAKI Masafumi
| lastname | 文字列 | | ユーザの苗字。ex. 山田 |
31 3 MIYAZAKI Masafumi
| permission | 文字列 | | ユーザの権限種別。「normal」「admin」 |
32 3 MIYAZAKI Masafumi
| memo | 文字列 | | 備考欄 |
33 3 MIYAZAKI Masafumi
34 3 MIYAZAKI Masafumi
h3. *****テーブル
35 3 MIYAZAKI Masafumi
36 3 MIYAZAKI Masafumi
ユーザごとの学習状況/得意・苦手把握/etc... を記録するテーブル。
37 2 MIYAZAKI Masafumi
38 2 MIYAZAKI Masafumi
| 列名 | 型 | 属性 | 説明 |
39 2 MIYAZAKI Masafumi
| T.B.D. | | | |
40 4 aoki yuji
41 4 aoki yuji
---
42 4 aoki yuji
43 5 aoki yuji
h3. ユーザ数×問題数のレコードを持つテーブル(傾向管理)
44 4 aoki yuji
45 1 MIYAZAKI Masafumi
| 列名 | 型 | 属性 | 説明 |
46 5 aoki yuji
| シリアルID | 整数 | serial | システムが一意に払い出す値。ユーザと問題の総当たり数だけ生成される。 |
47 5 aoki yuji
| ユーザSID | 整数 |  | ユーザの識別子 |
48 5 aoki yuji
| 問題番号 | 整数 |  | 問題の識別子 |
49 5 aoki yuji
| 正当回数 | 整数 |  | ユーザが問題を正答した回数 |
50 5 aoki yuji
| 誤答回数 | 整数 |  | ユーザが問題を誤答した回数 |
51 5 aoki yuji
| ランク | 整数 |  | ランクは問題抽出アルゴリズムに従い随時更新される |
52 4 aoki yuji
53 5 aoki yuji
h3. 問題が1回解答されたら1レコード生成するテーブル(履歴管理)
54 4 aoki yuji
55 4 aoki yuji
| 列名 | 型 | 属性 | 説明 |
56 4 aoki yuji
| シリアルID | 整数 | serial | システムが一意に払い出す値。問題が1回解答されたら1つ値を払い出す。連番を想定。 |
57 4 aoki yuji
| ユーザSID | 整数 |  | ユーザの識別子 |
58 4 aoki yuji
| 日付 | 文字列 |  | 問題が解答された日付 |
59 4 aoki yuji
| 問題番号 | 整数 |  | 問題の識別子 |
60 4 aoki yuji
| 正誤 | 整数 |  | 正答の場合:1 誤答の場合:0 |
61 4 aoki yuji
62 4 aoki yuji
h3. 問題抽出アルゴリズムの考え方
63 4 aoki yuji
64 4 aoki yuji
| 列名 | 型 | 属性 | 説明 |
65 4 aoki yuji
| ランク | 正答率(%) | 出題率(%) | 問題抽出個数(コ) |
66 4 aoki yuji
| 5 | 100-81 | 10 | 1 |
67 4 aoki yuji
| 4 | 80-61 | 30 | 3 |
68 4 aoki yuji
| 3 | 60-41 | 50 | 5 |
69 4 aoki yuji
| 2 | 40-21 | 70 | 7 |
70 4 aoki yuji
| 1 | 20-0 | 90 | 9 |
71 4 aoki yuji
72 4 aoki yuji
→問題抽出個数に従い出題問題候補リストを生成する
73 4 aoki yuji
 リストをシャッフルし1番最初の問題を取り出し出題する。