logo
Разработка автоматизированного рабочего места директора сети детских клубов Юла

3.1 Проектирование структуры базы данных

Для реализации базы данных мною выбрана СУБД MySQL. Web-интерфейс для работы с базой данных реализован с помощью серверного языка сценариев PHP Hypertext Preprocessor. Выполнено содержательное наполнение базы и показаны примеры работы с базой данных. Создание любой базы данных начинается с выбора структуры базы данных. В нашем случае удобнее использовать одиннадцать таблиц с данными. Для более подробного описание структуры базы данных «ДК Юла» обратимся к физической и логической модели.

Логический уровень - это абстрактный взгляд на данные, на нем данные представляются так, как выглядят в реальном мире, и могут называться так, как они называются в реальном мире, например "Клиент", "Занятие" или "Преподаватели". Объекты модели, представляемые на логическом уровне, называются сущностями и атрибутами. Логическая модель данных может быть построена на основе другой логической модели, например на основе модели процессов. Логическая модель данных является универсальной и никак не связана с конкретной реализацией СУБД.

Физическая модель данных, напротив, зависит от конкретной СУБД, фактически являясь отображением системного каталога. В физической модели содержится информация о всех объектах БД. Поскольку стандартов на объекты БД не существует (например, нет стандарта на типы данных), физическая модель зависит от конкретной реализации СУБД. Следовательно, одной и той же логической модели могут соответствовать несколько разных физических моделей. Если в логической модели не имеет значения, какой конкретно тип данных имеет атрибут, то в физической модели важно описать всю информацию о конкретных физических объектах - таблицах, колонках, индексах, процедурах и т. д. Разделение модели данных на логические и физические позволяет решить множество важных задач.[13]

Физическая схема базы данных.

Выделим следующие основные сущности предметной области и их атрибуты.

1. Сущность client (клиент) необходима для хранения информации о клиентах:

· id_student: int(8) (суррогатный ключ)

· fio: varchar(100) (ФИО клиента)

· birthDay: date (Дата рождения)

· id_parent: int(8) (суррогатный ключ)

2. Сущность lessons (занятия) необходима для хранения информации о занятиях:

· id_lesson: int(8) (суррогатный ключ)

· name: varchar(100) (название занятия)

· price: int(5) (стоимость абонемента за месяц)

· time: int(4) (продолжительность занятия)

3. Сущность parents (родители) необходима для хранения информации о родителях:

· id_parent: int(8) (суррогатный ключ)

· fio: varchar(50) (ФИО родителя)

· phone: varchar(11) (телефон родителя)

· address: varchar(100) (адрес родителя)

· passport: varchar(100) (паспортные данные родителя)

4. Сущность schedule (расписание) необходима для хранения информации о расписании занятий:

· id_schedule: int(8) (суррогатный ключ)

· id_lesson: int(8) (суррогатный ключ)

· day_week: varchar(1) (день недели 1,2…7)

· hour: time (время начала занятия)

5. Сущность teacher (учитель) необходима для хранения информации об учителях:

· id_teacher: int(8) (суррогатный ключ)

· fio: varchar(100) (ФИО учителя)

· phone: varchar(11) (телефон учителя)

6. Сущность status (статус) необходима для хранения информации о статусах посещаемости занятий:

· id_status: int(8) (суррогатный ключ)

· name: varchar(20) (наименование статуса посещаемости)

7. Сущность attendance (посещаемость) необходима для хранения информации о посещаемости клиентов:

· id_lesson: int(8) (суррогатный ключ)

· id_student: int(8) (суррогатный ключ)

· date: datetime (дата и время посещения занятия)

· id_status: int(8) (суррогатный ключ)

8. Сущности клиента и занятия объединены связкой ass_clientlessons:

· id_student: int(8) (суррогатный ключ)

· id_lesson: int(8) (суррогатный ключ)

· date_start: date (дата начала обучения)

· date_finish:date (дата окончания обучения)

9. Сущности учителя и занятия объединены связкой ass_teacherlesson:

· id_teacher: int(8) (суррогатный ключ)

· id_lesson: int(8) (суррогатный ключ)

10. Сущность adminra (администратор) необходима для регистрации администраторов

· cod_a: int(2) (суррогатный ключ)

· nik: varchar(20) (логин администратора)

· password: varchar(20) (пароль для авторизации с правами администратора)

11. Сущность authentication (аутентификация) необходима для регистрации родителей на сайте

· id_parent: int(8) (суррогатный ключ)

· login: varchar(15) (логин родителя)

· password: varchar(15) (пароль родителя)

Логическая модель базы данных.

Общая схема базы данных выглядит следующим образом:

Рисунок 3.1 - Логическая модель базы данных

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