2.2 Разработка структуры данных
Создание логической модели данных является одной из наиболее важных задач при проектировании любой программы. Поэтому особое внимание было уделено организации хранения данных.
Для хранения расписания всех групп колледжа, а так же информации о зарегистрированных в системе пользователей мною был сделан выбор в пользу СУБД MySQL.
MySQL - это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для интернет сайтов, как небольших, так и достаточно крупных. [9]
MySQL отличатся хорошей скоростью работы, надежностью, гибкостью. Работа с ней, как правило, не вызывает больших трудностей. Поддержка сервера MySQL автоматически включается в поставку PHP.
Немаловажным фактором является ее бесплатность. MySQL распространяется на условиях общей лицензии GNU (GPL, GNU Public License). [10]
Рисунок 2.2.1 - Структура данных
Таблица для хранения расписания raspisanie
Таблица состоит из следующих полей
Таблица 2.2.1 - Описание полей таблицы raspisanie
Имя поля |
Хранимая информация |
|
id |
Хранит идентификатор группы |
|
pn |
Хранит расписания для групп на понедельник |
|
vt |
Хранит расписания для групп на вторник |
|
sr |
Хранит расписания для групп на среду |
|
cht |
Хранит расписания для групп на четверг |
|
pt |
Хранит расписания для групп на пятницу |
|
sb |
Хранит расписания для групп на субботу |
Рисунок 2.2.2 - Структура таблицы raspisanie
В каждой ячейке таблицы хранится информация об одном учебном дне (количество пар, их порядок, проводимые предметы, номера аудиторий и фамилии преподавателей).
Информация в ячейках таблицы raspisanie зашифрована следующим образом:
[предм1>преп1>н. аудит1] | [предм2>преп2>н. аудит2] | [предм2>преп2>н. аудит2]
Любой из блоков может быть пропущен, тогда в результирующей таблицы будет пустая ячейка, что будет означать об отсутствии пары в этот учебный день.
Расшифровка данных из ячеек производится с помощью функций getLessonsWeek ($group) и getLessonsTomottow ($group), которые на основе зашифрованной в таблице информации формируют результирующую таблицу на неделю и на следующий учебный день соответственно. Аргументом для функций служит идентификатор группы.
Таблица для хранения информации о зарегистрированных пользователях users
Рисунок 2.2.3 - Структура таблицы users
Таблица состоит из следующих полей:
Таблица 2.2.2 - Описание полей таблицы users
Название поля |
Хранимая информация |
|
id |
Хранит идентификатор пользователя. Первичный ключ, автоинкремент. |
|
login |
Хранит логин пользователя для входа в систему |
|
pswd |
Хранит md5-хэш пароля пользователя |
|
FIO |
Содержит Фамилию и имя зарегистрировавшегося студента |
|
|
Хранит адрес электронной почты пользователя |
|
showcontant |
Отвечает за отображение контактной информации пользователя в общедоступных разделах сайта |
|
icq |
Хранит UIN пользователя |
|
st_group |
Идентификатор учебной группы, в которой состоит студент |
Из за того, что многие пользователя используют один и тот же пароль при авторизации во многих системах, целесообразным в плане безопасности стало решение хранения паролей пользователей в виде хэша md5. MD5 предназначен для создания "отпечатков" или "дайджестов" сообщений произвольной длины и последующей проверки их подлинности.
Зашифрованную информацию невозможно расшифровать, ее можно лишь проверить, сверив хранимый в БД хэш с хэшем введенного пароля.
То есть, пароль пользователя при регистрации записывается в базу в зашифрованном виде, а при авторизации хранимый хэш сравнивается. Таким образом непосредственно пароли на сервере не хранятся, поэтому утечка конфиденциальной информации при нарушении целостности БД невозможна.
Таблица для хранения информации о группах groups
Рисунок 2.2.4 - Структура таблицы groups
Таблица состоит из следующих полей:
Таблица 2.2.3 - Описание полей таблицы users
Название поля |
Хранимая информация |
|
id |
Идентификатор группы. Так же хранится и в других таблица. По идентификатору происходит выборка имени группы. |
|
group_name |
Имя группы |
Таблица для хранения новостей news
Рисунок 2.2.5 - Структура таблицы news
Таблица 2.2.4 - Описание полей таблицы users
Название поля |
Хранимая информация |
|
id |
Идентификатор новости. Служит для идентификации новости для ее редактирования или удаления из базы данных. |
|
title |
Заголовок новости |
|
news_text |
Текст новости |
|
date |
Дата добавления новости |
Таблица для хранения списка замен replacement
Рисунок 2.2.6 - Структура таблицы replacement
Таблица 2.2.5 - Описание полей таблицы users
Название поля |
Хранимая информация |
|
id |
Идентификатор замены. первичный ключ. Автоинкремент. |
|
group_id |
Идентификатор группы. определяет для какой группы установлена замена. |
|
n_pari |
Номер заменяемой пары. |
|
predmet |
Заменяемый предмет |
|
z_predmet |
Предмет замены |
- Введение
- 1. Аналитическая часть
- 1.1 Описание предметной области
- 1.2 Обзор программ-аналогов
- 1.3 Моделирование проектируемой системы
- 1.4 Разработка технического задания
- 2. Конструкторская часть
- 2.1 Разработка архитектуры программной системы
- 2.2 Разработка структуры данных
- 2.3 Конструирование пользовательского интерфейса
- 2.4 Обработка событий и ошибок ввода данных
- 2.5 Разработка программного алгоритма
- 2.6 Организация интерфейса хранения данных
- 3. Экспериментальная часть
- 3.1 Тестирование системы
- 3.2 Руководство программиста
- 3.3 Руководство оператора
- 4. Экономический раздел
- 4.1 Организационная часть
- 4.1.1 Органиация работ по обеспечению программными продуктами в ПК БГТУ
- Брянск Издательство бгту
- IX. Техническая поддержка и сопровождение исэд пк
- Двор бгту
- Рекомендации по обеспечению психологического сопровождения учебно-воспитательного процесса
- 48. Психолого-пед. Сопровождение учебно-воспитательного процесса.
- Тема 4.1. Информационно-технологическое сопровождение образовательного процесса.
- 48. Психолого-педагогическое сопровождение учебно-воспитательного процесса
- 2. Сопровождение учебного процесса
- Требования к результатам освоения учебной дисциплины «Учебные экскурсии по биологии»