DatabaseSpecification » 履歴 » バージョン 8

aoki yuji, 2016/05/01 15:13

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 7 aoki yuji
h3. Trendテーブル
44 8 aoki yuji
45 7 aoki yuji
ユーザ数×問題数のレコードを持つテーブル(傾向管理)
46 4 aoki yuji
47 1 MIYAZAKI Masafumi
| 列名 | 型 | 属性 | 説明 |
48 8 aoki yuji
| sid | 整数 | serial | 本テーブルのシリアルID。システムが一意に払い出す値。ユーザと問題の総当たり数だけ生成される。 |
49 8 aoki yuji
| user_sid | 整数 |  | ユーザのSID。ユーザの識別子 |
50 8 aoki yuji
| question_id | 整数 |  | 問題のID。問題の識別子 |
51 8 aoki yuji
| correct_times | 整数 |  | 正答回数。ユーザが問題を正答した回数 |
52 8 aoki yuji
| incorrect_times | 整数 |  | 誤答回数。ユーザが問題を誤答した回数 |
53 8 aoki yuji
| rank | 整数 |  | ランク。ランクは問題抽出アルゴリズムに従い随時更新される |
54 1 MIYAZAKI Masafumi
55 1 MIYAZAKI Masafumi
h3. Historyテーブル
56 8 aoki yuji
57 1 MIYAZAKI Masafumi
問題が1回解答されたら1レコード生成するテーブル(履歴管理)
58 1 MIYAZAKI Masafumi
59 1 MIYAZAKI Masafumi
| 列名 | 型 | 属性 | 説明 |
60 8 aoki yuji
| sid | 整数 | serial | 本テーブルのシリアルID。システムが一意に払い出す値。問題が1回解答されたら1つ値を払い出す。連番を想定。 |
61 8 aoki yuji
| user_sid | 整数 |  | ユーザのSID。ユーザのユーザの識別子 |
62 8 aoki yuji
| date | 文字列 |  | 問題が解答された日付 |
63 8 aoki yuji
| question_id | 整数 |  | 問題のID。問題の識別子 |
64 8 aoki yuji
| true_or_false | 整数 |  | 正誤。正答の場合:1 誤答の場合:0 |
65 4 aoki yuji
66 4 aoki yuji
67 8 aoki yuji
h3. 問題抽出アルゴリズム
68 8 aoki yuji
69 8 aoki yuji
→問題抽出個数に従い出題問題候補リストを生成する
70 8 aoki yuji
 リストをシャッフルし1番最初の問題を取り出し出題する。
71 8 aoki yuji
72 4 aoki yuji
| 列名 | 型 | 属性 | 説明 |
73 4 aoki yuji
| ランク | 正答率(%) | 出題率(%) | 問題抽出個数(コ) |
74 4 aoki yuji
| 5 | 100-81 | 10 | 1 |
75 4 aoki yuji
| 4 | 80-61 | 30 | 3 |
76 4 aoki yuji
| 3 | 60-41 | 50 | 5 |
77 4 aoki yuji
| 2 | 40-21 | 70 | 7 |
78 4 aoki yuji
| 1 | 20-0 | 90 | 9 |