завдань для даного рівня, level_rate – кількість балів за правильну відповідь на завдання даного рівня.
Таблиця 3.8 – Структура таблиці groups
Назва поля | Тип | Додаткові параметри
group_name | varchar(10)
group_id | tinyint(3) unsigned | PK, ai
В таблиці groups зберігається інформація про групи студентів. Поле group_name призначено для зберігання інформації про назву групи – послідовність до 10-ти символів, group_id – унікальний ідентифікатор групи в базі даних системи.
Таблиця 3.9 – Структура таблиці users
Назва поля | Тип | Додаткові параметри
user_name | varchar(35)
user_group | tinyint(3) unsigned | FK
user_pass | varchar(32)
user_id | int(10) unsigned | PK, ai
Таблиця users – призначена для зберігання інформації про користувачів системи. В термінах системи користувач – це клієнт, що зареєстрований в системі. Кожен користувач має ім’я і пароль, а також відношення до відповідної групи користувачів (студентів). Слід зауважити, що в полі user_pass зберігається зашифрований пароль.
Таблиця 3.10 – Структура таблиці time_table
Назва поля | Тип | Додаткові параметри
id | int(10) unsigned | PK, ai
group_id | tinyint(3) unsigned | FK(1)
subject_id | tinyint(3) unsigned | FK(2)
event_date | date
В таблиці time_table зберігається інформація, щодо розкладу проведення тестового контролю знань. У полі group_id – зберігається ідентифікатор академічної групи, subject_id – ідентифікатор предмету, event_date – дата проведення контролю. За допомогою розкладу проведення тестувань викладач повністю виключає можливість проходження тестового контролю студентами, що не мають прав на здачу даного тестового блоку.
Таблиця 3.11 – Структура таблиці session_results
Назва поля | Тип | Додаткові параметри
user_id | int(10) unsigned | FK(1)
test_id | tinyint(3) unsigned | FK(2)
date_sess | date
start_time | time
time_sess | time
result | tinyint(3) unsigned
questions | text
true_answers | text
user_ans | text
sess_id | int(10) unsigned | PK, ai
В таблиці session_results – записуються результати роботи студентів. Інформація з даної таблиці використовується перш за все для формування звітів про проходження тестувань студентами, а також для перевірки після входу користувача в систему на предмет результату із відповідного тесту це дозволяє, унеможливити перездачу тесту без дозволу адміністратора системи. Розглянемо призначення кожного поля.
user_id – ідентифікатор користувача, test_id – ідентифікатор тесту, date_sess – дата проведення контролю, start_time – час початку проходження тестування, time_sess – час закінчення тестування, results – кількість балів, отриманих користувачем за тест, questions – в даному полі зберігаються ідентифікатори заданих користувачу завдань, true_answers – в даному полі зберігається інформація про ознаку відповіді користувача на відповідне завдання.
Всі вище описані таблиці призначені для зберігання інформації про структуру тестових завдань, структуру власне завдань, а також структуру академічних груп. Так як функціонування системи передбачає не тільки тестовий контроль знань студентів, але й роботу адміністратора, необхідно, якісно відслідковувати всі дії адміністраторів, по відношенню до бази даних.
Для контролю роботи адміністраторів в системі передбачено дві таблиці – admins і admin_logs.
Таблиця 3.12 – Структура таблиці admins
Назва поля | Тип | Додаткові параметри
admin_name | varchar(35)
password | varchar(32)
priv | tinyint(3) unsigned
real_name | varchar(40)
admin_id | tinyint(3) unsigned | PK, ai
Структура даної таблиці в цілому повторює таблицю users, основна відмінність полягає в тому, що кожен адміністратор в термінах системи має певний рівень доступу до кожного модуля підсистеми адміністрування. На даний момент в системі підтримується три рівні привілеїв адміністраторів.
Таблиця 3.13 – Структура таблиці admin_logs
Назва поля | Тип | Додаткові параметри
id | bigint(20) unsigned | PK, ai
admin_id | tinyint(3) unsigned | FK
remote_ip | varchar(15)
e_date | date
e_time | time
user_agent | varchar(70)
session_id | varchar(32)
В даній таблиці зберігається інформація про вхід адміністратора в систему. За інформацію із даної таблиці адміністратор із рівнем привілеїв нуль (який до речі єдиний має до неї доступ) може дізнатись хто, коли і звідки працював із підсистемою адміністрування.
Адміністратор (викладач) має можливість контролю в режимі реального часу всіх користувачів, що проходять тестування. Для реалізації даної можливості в базі даних передбачена таблиця active_sess. В існуючій на даний момент версії програми, в таблиці active_sess зберігається дуже мало інформації, але ніщо не заважає удосконалити існуючу структуру.
3.4 Розробка структури Web-вузла системи
3.4.1 Загальні положення
Розробка структури вузла – досить складна задача. Складність полягає в тому, що необхідно забезпечити гнучкий механізм взаємодії користувача з системою. Слід також зазначити, що важливим є питання швидкої, а головне надійної роботи системи з сервером системи управління базами даних. Як видно з рисунка 3.1 в системі підтримується багато користувачів з різними привілеями доступу, структура web-вузла повинна враховувати ці можливості. Із аналізу вище сказаного можна зробити висновок, що система повинна бути розділена на дві великі підсистеми. Розподіл допоможе також розділити роботу розробників (розробника), які можуть окремо працювати над модулями кожної із підсистем окремо, незважаючи на можливості інших модулів. Система також повинна володіти можливостями локалізації її інтерфейсу до різних мов. Для забезпечення цього використовується загальний метод оформлення всіх повідомлень системи у файлах мовної локалізації.
Web-вузол системи складається із двох підсистем: адміністрування і тестування. Для забезпечення надійної і якісної роботи користувачів, необхідно грамотно продумати структуру web-вузла системи. Саме від правильного вибору структури буде залежати якість роботи користувачів системи. Необхідно розділити функції, що покладені на адміністраторів і студентів. З точки зору проектувальника найбільш складною є підсистема адміністрування, яка повинна забезпечувати виконання таких функцій: занесення, модифікація, видалення інформації з бази даних системи, а також аналізу звітів. Також важливою є функція розділення прав користувачів підсистеми адміністрування. Підсистема тестування забезпечує виконання функції проведення тестового контролю знань користувачів. На відміну від підсистеми адміністрування