Рисунок 2.1 - просмотр таблиц базы данных ITN с использованием программы phpMyAdmin
В каждой таблице присутствует уникальное идентификационное поле, которое позволяет однозначно идентифицировать запись таблицы. Такая структура исключает избыточность данных, позволяет ускорить отбор записей по условию, исключает вероятность конфликтов при совместной работе нескольких пользователей.
Одной из основных таблиц является таблица "students". В ней хранится вся информация о пользователях, зарегистрированных в системе. Таблица содержит поля - login - идентифицирующее студента при входе в систему. Password - пароль для доступа к подсистеме обучения. Пароль кодируется шифром md5, алгоритм которого реализован в языке PHP. Кодирование позволяет защитить пароль от просмотра заинтересованными пользователями. По этим двум параметрам осуществляется вход в систему.
Поле idstud хранит информацию о шифре студента и является уникальным идентификатором студента. Поле lastdate содержит дату последнего входа в систему, это поле заполняется автоматически текущей датой при успешной регистрации в системе. Поля: name, secondname, faculty,email - хранят данные о студенте.
Ключевым полем в таблице students является поле idstud. По полю idstud данная таблица связана с таблицей "results" связью "один-ко-многим", c таблицей "chatmessages" связью "один-ко-многим", c таблицей "guests" связью "один-ко-многим". Типы данных полей таблицы "students" представлены в таблице 2.1
Таблица 2.1 - Структура таблицы "students"
№ п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Шифр студента | idstud | char(10) | Ключевое UNIQUE |
2 | Имя | name | char(40) | NOT NULL |
3 | Фамилия | secondname | char(30) | NOT NULL |
4 | Факультет | faculty | char(30) | NOT NULL |
5 | Адрес электронной почты | char(128) | NOT NULL | |
6 | Логин студента | login | char(16) | NOT NULL UNIQUE |
7 | Пароль | password | char(30) | NOT NULL |
8 | Дата регистрации в системе | lastdate | date |
В таблице "subjects" хранится информация о дисциплинах дистанционного обучения. Ключевым полем в таблице является поле idsub. Таблица связана по полю idsub таблицей "questions" и с таблицей "results" связью "один-ко-многим".
Структура таблицы с описанием типов полей приведена в таблице 2.2
Таблица 2.2 - Структура таблицы "subjects"
№п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор дисциплины | idsub | int | Ключевое, AUTO_INCREMENT |
2 | Дисциплина | subject | Char(30) | NOT NULL |
В таблице "questions" хранится информация о вопросах тестов. Ключевым полем в таблице "questions" является поле idques. Таблица связана по полю idques с таблицей "answers" связью "один-ко-многим".
Структура таблицы с описанием типов полей приведена в таблице 2.3
Таблица 2.3 - Структура таблицы "questions"
№ п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор вопроса | idques | int | Ключевое, AUTO_INCREMENT |
2 | Индентификатор дисциплины | idsubq | int | NOT NULL |
3 | Содержимое вопроса | quesmes | char (50) | NOT NULL |
В таблице "answers" хранится информация о вариантах ответов на вопросы тестов. Ключевым полем в таблице является поле idans. Таблица связана по полю parent с таблицей "questions" связью "многие-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.4
Таблица 2.4 - Структура таблицы "answers"
№ п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор ответа | idans | int | Ключевое, AUTO_INCREMENT |
2 | Вопрос | parent | int | NOT NULL |
3 | Содержимое ответа | ansmes | char(255) | NOT NULL |
4 | Флаг правильного ответа | rightanswer | enum('1', '0') | NOT NULL, DEFAULT '0' |
В таблице "results" хранится информация о курсах, на которые зарегистрировались студенты. Ключевым полем в таблице "results" является поле idres. Таблица связана по полю idsubr с таблицей "subjects" связью "многие-к-одному", по полю idstudr с таблицей "students" связью "многие-к-одному". Поле count содержит число попыток студента пройти тест. В поле posted заносится дата последней попытки прохождения теста. Структура таблицы с описанием типов полей приведена в таблице 2.5
Таблица 2.5 - Структура таблицы "results"
№ п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор результата студента | idres | int | Ключевое, AUTO_INCREMENT |
2 | Шифр студента | idstudr | int | NOT NULL |
3 | Дисциплина | idsubr | int | NOT NULL |
4 | Результат | score | byte | NOT NULL |
5 | Дата записи | posted | date | |
6 | Количество попыток студента | count | tinyint |
В таблице "chatmessages" хранится информация о тестах пройденных студентами. Ключевым полем в таблице "chatmessages" является поле idchmes. Таблица связана по полю idstudc с таблицей "students" связью "многие-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.6.
Таблица 2.6- Структура таблицы "chatmessages"
№ п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор сообщения чата | idchmes | int | Ключевое, AUTO_INCREMENT |
2 | Индентификатор студента | idstudc | int | NOT NULL |
3 | Сообщение чата | message | Char(150) | NOT NULL |
4 | Адрес сообщения | ip | Char(15) | NOT NULL |
5 | Время и дата записи | time | date |
В таблице "guests" хранятся записи гостевой книги. Ключевым полем в таблице "guests" является поле idguest. Таблица связана по полю idstudg с таблицей "students" связью "многие-к-одному". Поле page содержит информацию о принадлежности записи гостевой книги к определенной странице модуля сайта. Структура таблицы с описанием типов полей приведена в таблице 2.7
Таблица 2.7 - Структура таблицы "guests"
№ п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор записи гостевой книги | idguest | int | Ключевое, AUTO_INCREMENT |
2 | Индентификатор студента | idstudg | int | NOT NULL |
3 | Запись гостевой книги | message | char(150) | NOT NULL |
4 | Адрес пользователя | ip | char(128) | NOT NULL |
5 | Время записи | time | char(128) | NOT NULL |
6 | Страница принадлежности | page | Char(30) | NOT NULL |
В таблице "IPs" хранится информация о запрещенных администратором для записи ip - адресах. Ключевым полем в таблице "IPs" является поле idip. Поле sub определяет принадлежность запрещенного IP - адреса к гостевой книге или чату. Структура таблицы с описанием типов полей приведена в таблице 2.8
Таблица 2.8 - Структура таблицы "IPs"
№ п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Шифр IP - адреса | idip | int | Ключевое |
2 | IP - адрес | ip | Char(15) | NOT NULL |
3 | принадлежность | sub | Char(30) | NOT NULL |
В таблице "bals" хранится информация о соотношении результата тестирования в процентах к оценке. Структура таблицы с описанием типов полей приведена в таблице 2.9
Таблица 2.9 - Структура таблицы "bals"
№ п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Оценка в баллах | bal | tinyint | NOT NULL |
2 | Результат тестирования в процентах | percent | byte | NOT NULL |
В таблице "cd" хранится информация о товарах представленных в интернет - магазине. Ключевым полем является поле idcd. По полю idcd данная таблица связана с таблицей zakaz связью "один-ко-многим" Структура таблицы с описанием типов полей приведена в таблице 2.10
Таблица 2.10 - Структура таблицы "cd"
№ п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | № товара | idcd | int | Ключевое |
2 | Примечания | description | Char(150) | |
3 | Цена | price | float | NOT NULL |
В таблице "zakaz" хранится информация о заказах в интернет - магазине. Ключевым полем в таблице "zakaz" является поле idz. Таблица связана по полю idclienta с таблицей "shopclients" связью "многие-к-одному", по полю idcd с таблицей "cd" связью "многие-к-одному". Поле count содержит количество заказанного товара. В поле recdate заносится дата заказа. В поле flag_done хранится информация о статусе выполнения заказа. Структура таблицы с описанием типов полей приведена в таблице 2.11