DatabaseSpecification » 履歴 » バージョン 9

MIYAZAKI Masafumi, 2016/05/04 01:02

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