Смекни!
smekni.com

Разработка автоматизированного рабочего места для спорткомплекса (стр. 2 из 4)

Function.php – модуль содержащий следующие функции:

- Данные о тренере (номер тренера, Ф.И.О., адрес, телефон, возраст);

- Functionrasp_trener – выводит расписание для тренера;

- Functionrasp_group – выводит расписание для группы;

- Functionadd_raspisanie – добавляет расписание для любого из подразделений, в зависимости от параметров;

- Functionedit – редактирует расписание для любого из подразделений;

- Functionsw_time – выводит таблицу учета свободного времени;

- Functionspisok – формирует поле со списком для каждого подразделения.

View_info.php – модуль формирующий отчеты и формы для необходимого подразделения.

4.2 Классификация и реализация используемых запросов

При написании курсовой работы были использованы следующие классы SQL запросов:

- запросы на создание таблиц БД;

- запросы на выборку данных со всевозможными условиями;

- запросы на редактирования записей в таблицах;

- запросы на удаление записей из таблиц;

- запросы на добавление записей в таблицы.

Все запросы, написанные для реализации данной информационной системы, не имеют общего места расположения, а используются повсеместно в разных частях исходного кода (во всех модулях) по мере необходимости.

Запросы на создание таблиц БД.

SQL запрос на создание таблицы time (Время).

CREATE TABLE `time` (`id_time` INT(11) NOT NULL AUTO_INCREMENT,`time` VARCHAR(20) NOT NULL, PRIMARY KEY (`id_time`));

SQL запрос на создание таблицы weekday (День недели).

CREATE TABLE `weekday` (`id_weekday` INT(11) NOT NULL AUTO_INCREMENT,`weekday` VARCHAR(11) NOT NULL, PRIMARY KEY (`id_weekday`));

SQL запрос на создание таблицы time_off_weekday (Время дня недели).

CREATE TABLE `time_off_weekday` (`id_timeweekday` INT(11) NOT NULL AUTO_INCREMENT,`id_time` INT(11) NOT NULL,`id_weekday` INT(11) NOT NULL, PRIMARY KEY (`id_timeweekday`));

SQL запрос на создание таблицы auditorium (Помещения).

CREATE TABLE `auditorium` (`id_auditorium` INT(11) NOT NULL AUTO_INCREMENT,`number_auditorium` VARCHAR(10) NOT NULL,`type_occupation` VARCHAR(15) NOT NULL,`floor` VARCHAR(5) NOT NULL, PRIMARY KEY (`id_auditorium`));

SQL запрос на создание таблицы group_off_student (Группы).

CREATE TABLE `group_off_student` (`id_group` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(10) NOT NULL,`decryption` VARCHAR(30) NOT NULL, PRIMARY KEY (`id_group`));

SQL запрос на создание таблицы peoples (Посетители).

CREATE TABLE ` peoples ` (`id_peoples ` INT(11) NOT NULL AUTO_INCREMENT,`id_group` INT(11) NOT NULL,`name` VARCHAR(15) NOT NULL,`surname` VARCHAR(15) NOT NULL,`patronymic_name` VARCHAR(15) NOT NULL, PRIMARY KEY (`id_student`));

SQL запрос на создание таблицы teacher (Тренеры).

CREATE TABLE `teacher` (`id_teacher` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(15) NOT NULL,`surname` VARCHAR(15) NOT NULL,`patronymic_name` VARCHAR(15) NOT NULL,`vid_zanyatiy` VARCHAR(15) NOT NULL,`Address` VARCHAR(30) NOT NULL,`Telephone` VARCHAR(15) NOT NULL,`Age` VARCHAR(10) NOT NULL, PRIMARY KEY (`id_teacher`));

SQL запрос на создание таблицы raspisanie (Расписание).

CREATE TABLE `raspisanie` (`id_raspisanie` INT(11) NOT NULL AUTO_INCREMENT,`id_timeweekday` INT(11) NOT NULL,`id_auditorium` INT(11) NOT NULL,`id_teacher` INT(11) NOT NULL,`id_group` INT(11) NOT NULL, PRIMARY KEY (`id_raspisanie`));


5. Технология решения задачи

5.1 Описание дерева диалога (форм ввода-вывода)

Как правило, для удобства пользователей создаются экранные формы, которые позволяют рационально расположить данные на экране, использовать разнообразные элементы оформления, обеспечивать возможности специфических проверок при вводе данных.

Экранные формы уже давно применяются в практике создания баз данных. Роль форм сильно возросла и изменилась в последнее время. Сейчас экранные формы используются не только для ввода данных в базу, корректировки данных, а также позаписного ввода данных, но и для реализации просмотров базы данных по определенным условиям, и даже для создания заставок и меню.

Если первоначально формы определялись только как способ отображения одной записи в БД, то сейчас в формах допускается наличие табличной (многострочной) части; более того, допускается наличие множества динамических частей, возможно, из разных баз данных.

Экранные формы можно классифицировать по ряду признаков:

- по характеру связи с таблицами;

- по распределению данных по экранам (страницам);

- по способу реализации;

- по форме представления информации;

- по выполняемым функциям различают формы ввода, вывода, управляющие, смешанные.

Назначение каждого вида этих форм ясно из их названия. Следует обратить внимание на то, что даже в случае, если формы ввода и вывода полностью совпадают по своему внешнему виду, иногда целесообразно их выполнить как самостоятельные формы в целях обеспечения безопасности данных.

При проектировании данной базы данных также использовалось большое количество форм ввода-вывода.

Например, формами ввода и просмотра информации являются такие формы как «просмотр информации о подразделениях», позволяющая вносить и выводить данные, «просмотр расписания» и «просмотр свободного времени», дающие возможность вносить и просматривать данные.

5.2 Технология ввода и накопления входной информации, обеспечивающей решение задачи

Организуя ввод данных, в базу данных, необходимо помнить, что человек, использующий какую либо форму для ввода информации в базу может допустить всевозможные ошибки.

При организации ведения баз данных нужно стремиться к реализации принципа однократного ввода информации.

Необходимо стараться до минимума сократить количество ручных операций.

Надо обеспечивать контроль правильности введенных данных.

Необходимо осуществлять фильтрацию данных, проверку на запрещенные символы, заполнение всех полей формы, длину строк и др.

Введенные данные проходят тщательную обработку (фильтрацию), для предотвращения записи не корректно сформированных данных или ошибочной информации. После фильтрации данные записываются в базу данных, и хранятся там столько сколько потребуется.

5.3 Технология осуществления запросов

Если пользователю необходимо получить какую-либо информацию, касающуюся данной предметной области, то он может воспользоваться запросами, существующими в базе данных. Все SQL запросы прописаны в исходном коде программы. Обрабатывая, какую либо форму, выполняется тот запрос, который принадлежит данной форме. Если это форма добавления нового тренера, то обрабатывается запрос добавления в базу данных записи с информацией обо всех необходимых атрибутах таблицы. Если хотя бы один из атрибутов не будет передан, то есть, какое либо из полей формы не будет заполнено или будет не соответствовать требованиям, запрос не будет выполнен, и появится сообщение об ошибке. В противном случае информация со всех полей формы передастся в поле таблицы. Таким образом, выполняются все остальные запросы, принадлежащие различным формам, таким как форма редактирования, удаления и вывода информации. Если пользователь попытается осуществить свой запрос, ему необходимо будет использовать исходный код системы и в нем сформировать все необходимы формы для данного запроса. Примеры некоторых запросов используемых в системе приведены ниже.

Запрос на выборку посетителей из определенной группы.

SELECT name, surname, patronymic_name FROM student WHERE id_group = ‘ВМ-06–01’;

Запрос, подсчитывающий количество человек в группе.

SELECT COUNT (id_group) FROM student WHERE id_group = ‘ВМ-06–01’;

Запрос, выводящий таблицу учета свободного времени у тренеров.

SELECT id_weekday, id_time FROM time_off_weekday WHERE id_timeweekday NOT IN (SELECT id_timeweekday FROM raspisanie WHERE id_teacher = 1;

5.4 Технология получения отчетов

Есть несколько способов получения отчетов. На панели главного меню расположены две формы, одна из них служит для получения отчетов методом выбора нужного элемента из поля со списком. Таких поля три, каждое поле соответствует определенному подразделению, такому как помещения, группы и тренеры. При выборе элемента из списка выводится отчет (о расписании, учете свободного времени и информация о выбранном элементе) в виде таблицы, но кроме отчета предоставлены еще несколько форм для работы с отчетов, благодаря этим формам можно производить изменения данных прямо в отчете и смотреть, как формируется отчет на основе этих изменений. Это удобно и позволяет нам не тратить время на переходы от формы вывода информации (отчета) к форме редактирования, все происходит в одном месте. Кроме всего этого существует форма позволяющая вывести всю информацию об определенном подразделении и др.

Все отчеты представлены в табличном виде, созданном при помощи html тэгов, например для создания таблицы расписание, необходимо написать следующее.

<table border=1 width=100% height=18><tr>

<td width=300 height=12><p align=center><tt>Время</tt></p></td>

<td width=350 height=12><p align=center><tt>Помещение</tt></p></td>

<td width=150 height=12><p align=center><tt>Тренер</tt></p></td>

</tr>

</table>

При заполнении таблицы данными из базы данных, таблицу необходимо поместить в цикл, для вывода необходимого числа записей.


6. Тестирование программы

6.1 Тестовые наборы

Перед тем как поместить данные из заполненной формы в БД, необходимо провести обработку данных (фильтрацию). В данной системе предусмотрена проверка вводимых данных. Запись в базу будет производиться в том случае, когда будет выполнен ряд условий, таких как:

– проверка на заполнение всех полей формы;

– проверка да длину строки;

– проверка на соответствие типов;

– проверка на запрещенные символы.

Если введенные данные соответствуют всем требованиях, перед отправкой их обрабатывает функция htmlspecialchars, которая служит для защиты БД MySQL.

Если данные не проходят всех уровней фильтрации, выводятся различные ошибки, в зависимости от определенного условия. Например, не выполнили заполнение полей формы, выводится ошибка (Рисунок 5).

Рисунок 5 – Ошибка

В таблицы 2, 3 и 4 не вносятся новые записи, они служат для вывода и обработки существующих в них записей. Тестовую информацию в них вносить не обязательно.


Таблица 2 – День проведения занятия

Код дня День недели
1 Понедельник
2 Вторник

Таблица 3 – Время проведения занятий

Код времени Время
1 08: 30 – 10: 00
2 10: 10 – 11: 40

Таблица (Таблица 4) хранит все возможные комбинации для всех дней и всего времени. Тестовые наборы с некорректными данными также не обязательны, так как в системе нет возможности форматирования данных в данной таблице.