第 6 章 システムの実現方法
6.3 データベース構造
62
63 6.3.2 mdl_attendance_logテーブル
Field Type Null Key Defaule Extra
id sessionid studentid statusid statusset timetaken takenby remarks
bigint(10) bigint(10) bigint(10) bigint(10) varchar(100) bigint(10) bigint(10) varchar(255)
NO NO NO NO YES NO NO YES
PRI MUL MUL MUL
NULL 0 0 0 NULL 0 0 NULL
auto_increment
図 6-4 mdl_attendance_logテーブル
attendanceモジュール既存のテーブルで、なにも手を加えていない。
図 6-4のテーブルには学生一人ひとりの一回一回の出席記録がレコードとして保存され る。
idフィールドは主キーであり、出欠記録が取られるたびに自動で1から順番に数が振ら れる。
sessionidフィールドはレコードがどのセッションに関する出席記録であるかを表す。こ
のフィールドに入る値は、mdl_attendance_sessionsテーブルの該当するセッションのレコ ードのidフィールドの値である。
studentidフィールドにはレコードがどのユーザーに関する出席記録であるかを表す。こ
のフィールドに入る値は、mdl_userテーブルの該当するユーザーのレコードのidフィー ルドの値である。
statusidフィールドは出席記録が「出席」「欠席」などのようにどの状態であったかを表
す。このフィールドに入る値は、mdl_attendance_statusesテーブルのレコードの内の
attendanceidフィールドが該当する出欠モジュールのidであり該当する出席状態のレコー
ドのidフィールドの値である。
statussetフィールドは出席記録の状態を表す「出席」「欠席」などのそれぞれがどの値
で表されるかが記録される。このフィールドに入る値は、mdl_attendance_statusesテーブ ルのレコードの内のattendanceidフィールドが該当する出欠モジュールのidと一致する すべてのレコードのidが保存される。
timetakenフィールドは出席記録が記録された時を保存する。
takenbyフィールドは出席記録が誰によって記録されたかを保存する。このフィールド
に入る値は、mdl_userテーブルの該当するユーザーのレコードのidフィールドの値であ る。
remarksフィールドには出席記録を記録する際に「備考」欄に入力した情報が保存され
る。
64 6.3.3 mdl_attendance_sessionsテーブル
Field Type Null Key Default Extra
id
attendanceid groupid sessdate duration lasttaken lasttakenby timemodified description descriptionformat studentscanmark studentsmarkmyseat
bigint(10) bigint(10) bigint(10) bigint(10) bigint(10) bigint(10) bigint(10) bigint(10) logtext tinyint(2) tinyint(1) tinyint(1)
NO NO NO NO NO YES NO YES NO NO NO NO
PRI MUL MUL MUL
NULL 0 0 0 0 NULL 0 NULL NULL 0 0 0
auto_increment
図 6-5 mdl_attendance_sessionsテーブル
attendanceモジュール既存のテーブルで、フィールドを1つ新たに追加した。
図 6-5のテーブルはセッションの情報を保存するテーブルであり、このテーブルにはセ ッション一つにつきひとつのレコードが保存される。
idフィールドは主キーであり、セッションが出欠モジュールに追加されるたびに自動で 1から順番に数が振られる。
attendanceidフィールドはどの出欠モジュールであるかを表す。このフィールドには、
mdl_attendanceテーブル内の該当する出欠モジュールのレコードのidフィールドの値が
入る。
groupidフィールドにはセッションのグループモードが何であるかを表す。グループモ
ードには「分離モード」と「可視モード」がある。グループモードは出欠モジュールを追 加する際にどのモードにするか選択できるが、「可視モード」の出欠モジュールはセッシ ョンを追加する際にグループモードと一般モードのどちらで出席を取るか選択できるた め、mdl_attendance_sessionsテーブルにグループモードのデータが保存される仕様になっ ている。「一般モード」のセッションの場合はこんおフィールドには0が入る。
sessdateフィールドにはセッションが利用される講義の日付が保存される。
durationフィールドにはセッションの継続時間が保存される。
lasttakenフィールドはセッションの最後に出席登録が行われた時間が保存される。
lasttakenbyフィールドにはセッションの最後に行われた出席登録がどのユーザーである
か保存される。このフィールドに入る値は、mdl_userテーブルの該当するユーザーのレコ ードのidフィールドの値である。
65
timemodifiedフィールドにはセッションが作成された時間が記録される。
descriptionフィールドにはセッションを追加する時の「説明」欄に記入した内容が保存
去れる。
studentscanmarkフィールドにはセッション作成時に「学生に自分の出欠の記録を許可
する」チェックボックスをチェックした場合は1が、していない場合には0が保存され る。
studentsmarkmyseatフィールドにはセッション作成時に「座席を用いて出席管理ができ
るようにする」チェックボックスをチェックした場合は1が、していない場合には0が保 存される。
66 6.3.4 mdl_attendance_statusesテーブル
Field Type Null Key Default Extra
id
attendanceid acronym description grade visible deleted
bigint(10) bigint(10) varchar(2) varchar(30) smallint(3) tinyint(1) tinyint(1)
NO NO NO NO NO NO NO
PRI MUL
MUL MUL
NULL 0
0 1 0
auto_increment
図 6-6 mdl_attendance_statusesテーブル
attendanceモジュール既存のテーブルで、なにも手を加えていない。
図 6-6のテーブルは出席登録の際につかう出席状態を保存するテーブルである。どの出 席状態の評点が何点なのかということもこのテーブルに保存される。出席状態(「出席」
「欠席」「遅刻」「早退」など)の種類・数やそれぞれの評点は出欠モジュールごとに設定 できる。
idフィールドは主キーであり、出欠モジュールがコースに追加されるたびに自動で1か ら順番に数が振られる。出欠モジュールがコースに追加される度に、「出席」「遅刻」「早 退」「欠席」の4種類の出席ステータスが追加される。よってこのテーブルにも出欠モジ ュールがコースに追加される度に、4つのレコードが挿入される。また、出席ステータス の種類ははじめは4種類だが後から追加・編集・削除することが可能で、その際にはこの テーブルにも変更が加えられる。
attendanceidフィールドはどの出欠モジュールであるかを表す。このフィールドには、
mdl_attendanceテーブル内の該当する出欠モジュールのレコードのidフィールドの値が
入る。
acronymフィールドには出席状態の略語が保存される。出席状態の略語は出欠モジュー
ルごとに設定することができる。出席状態の略語とはたとえば「出席」であれば「出」
、「欠席」であれば「欠」などのことである。
descriptionフィールドにはacronymフィールドの様に出席状態を省略した言葉でなく、
「出席」ならば「出席」と省略しない言葉が保存される。
gradeフィールドには出席状態の評点が保存される。
visibleフィールドは出席状態を表示するかしないか、評点に加えるか加えないかの設定
が保存される。この設定は出欠モジュールごとに行う。出席状態を表示し、評点に加える 設定の場合はこのフィールドに1が入り、そうでない場合には0が入る。
deletedフィールドは削除された出席状態であるかどうかが保存される。削除された出席
状態であれば1が、削除されていない出席状態であれば0が入る。
67 6.3.5 mdl_attendance_seatテーブル
Field Type Null Key Default Extra
id sessionid studentid seatrow seatcol
bigint(10) bigint(10) bigint(10) bigint(10) bigint(10)
NO NO NO NO NO
PRI NULL
0 0 0 0
auto_increment
図 6-7 mdl_attendance_seatテーブル
新たに追加したテーブルである。
図 6-7のテーブルは学生が送信した自身の座席位置の情報を保存する。誰が前から何列 目、右から何列目の席に座っているかという情報とどのセッションであるかという情報が 保存される。
idフィールドは主キーであり、学生が座席位置を送信する度に自動で1から順番に数が 振られる。
sessionidフィールドはレコードがどのセッションに関する出席記録であるかを表す。こ
のフィールドに入る値は、mdl_attendance_sessionsテーブルの該当するセッションのレコ ードのidフィールドの値である。
studentidフィールドにはレコードがどのユーザーに関する出席記録であるかを表す。こ
のフィールドに入る値は、mdl_userテーブルの該当するユーザーのレコードのidフィー ルドの値である。
seatrowフィールドには学生が送信した座席位置の情報の内、前から何列目かという情
報が保存される。
seatcolフィールドには学生が送信した座席位置の情報の内、右から何列目かという情報
が保存される。
6.3.6 mdl_attendance_seatexistテーブル
Field Type Null Key Default Extra
id sessionid seatexistrow seatexistcol
bigint(10) bigint(10) bigint(10) bigint(10)
NO NO NO NO
PRI NULL
0 0 0
auto_increment
図 6-8 mdl_attendance_seatexistテーブル
moodleデータベースに新たに追加したテーブルである。
図 6-8のテーブルには教室データ作成画面で作成した教室データとどのセッションであ るかという情報が保存される。
68
idフィールドは主キーであり、教室データが作成される度に自動で1から順番に数が振 られる。また、おなじセッションの教室データを再度作成した場合は、前に作成した時に 挿入されたレコードが削除され、新しく作成したデータのレコードが挿入される。
sessionidフィールドはレコードがどのセッションに関する出席記録であるかを表す。こ
のフィールドに入る値は、mdl_attendance_sessionsテーブルの該当するセッションのレコ ードのidフィールドの値である。
教室データは存在する座席はどの場所にあるのかという情報であり、seatexistrowフィ ールドはその座席の前からの列数を、seatexistcolフィールドはその座席の右からの列数を 保存している。
6.3.7 mdl_attendance_seatvacantテーブル
Field Type Null Key Default Extra
id sessionid seatvacantrow seatvacantcol
bigint(10) bigint(10) bigint(10) bigint(10)
NO NO NO NO
PRI NULL
0 0 0
auto_increment
図 6-9 mdl_attendance_seatvacantテーブル
moodleデータベースに新たに追加したテーブルである。
図 6-9のテーブルには空席記録画面で記録した空席の情報とどのセッションであるかと いう情報が保存される。
idフィールドは主キーであり、教員が空席記録をする度に自動で1から順番に数が振ら れる。また、おなじセッションの空席記録を再度行った場合は、前に空席記録をした時に 挿入されたレコードが削除され、新しく記録したデータのレコードが挿入される。
sessionidフィールドはレコードがどのセッションに関する出席記録であるかを表す。こ
のフィールドに入る値は、mdl_attendance_sessionsテーブルの該当するセッションのレコ ードのidフィールドの値である。
空席の情報は、空いている座席はどの場所にあるのかという情報であり、seatvacantrow フィールドはその座席の前からの列数を、seatvacantcolフィールドはその座席の右からの 列数を保存している。