
- •Министерство образования и науки рф
- •Рязанский государственный радиотехнический университет
- •Разработка программ по сопровождению базы данных ис автоматизации деятельности фитнес клуба
- •Описание предметной области
- •Описание структуры базы данных
- •4. Скрипт по созданию модифицированной бд
- •5 . Скрипт по созданию триггеров
- •6. Скрипт по созданию хранимых процедур
- •7. Скрипт по созданию ролей и присвоению им прав
- •Список используемых источников
Описание структуры базы данных
Кратко опишем назначение каждой таблицы и ее полей.
Таблица “Clients”(“Клиенты”) предназначена для хранения справочной информации о клиентах. В ней указываются основные данные о клиенте, которые требуются знать клубу. Описание полей приведено в таблице 1.
Таблица 1. Таблица “Clients”(“Клиенты”)
PK |
FK |
Поле |
Тип |
Размер |
NN |
Описание |
|
|
ID_CLIENT |
INTEGER |
|
|
Код клиента |
|
|
FIO |
VARCHAR |
30 |
|
ФИО клиента |
|
|
ADRES |
VARCHAR |
50 |
|
Адрес клиента |
|
|
TELEFON |
VARCHAR |
11 |
|
Телефон клиента |
|
|
BIRTHDAY |
DATE |
|
|
Дата рождения клиента |
Таблица “Workers”(“Сотрудники”) предназначена для хранения справочной информации о сотрудниках. В ней указываются основные данные о сотрудниках, которые требуются знать клубу. Описание полей приведено в таблице 2.
Таблица 2. Таблица “Workers”(“Сотрудники”)
PK |
FK |
Поле |
Тип |
Размер |
NN |
Описание |
|
|
ID_WORKER |
INTEGER |
|
|
Код сотрудника |
|
|
FIO |
VARCHAR |
30 |
|
ФИО сотрудника |
|
|
ADRES |
VARCHAR |
50 |
|
Адрес сотрудника |
|
|
TELEFON |
VARCHAR |
11 |
|
Телефон сотрудника |
|
|
PASSPORT |
VARCHAR |
11 |
|
Паспортные данные сотрудника |
|
|
JOB |
VARCHAR |
20 |
|
Должность сотрудника |
Таблица “Services”(“Услуги”) предназначена для хранения информации о предоставляемых услугах фитнес клуба. Описание полей приведено в таблице 3.
Таблица 3. Таблица “Services”(“Услуги”)
PK |
FK |
Поле |
Тип |
Размер |
NN |
Описание |
|
|
ID_SERVICE |
INTEGER |
|
|
Код услуги |
|
|
NAME |
VARCHAR |
20 |
|
Наименование услуги |
Таблица “Weeks”(“Дни недели”) предназначена для хранения данных о днях недели. Это сделано для того, чтобы в таблицу “Timetable”(“Расписание занятий”) каждый раз не приходилось заносить названия дня недели. Описание полей приведено в таблице 4.
Таблица 4. Таблица “Weeks”(“Дни недели”)
PK |
FK |
Поле |
Тип |
Размер |
NN |
Описание |
|
|
ID_WEEK |
INTEGER |
|
|
Код дня недели |
|
|
NAME |
VARCHAR |
11 |
|
Наименование дня недели |
Таблица “Discounts”(“Система скидок”) предназначена для хранения данных о скидках на предоставляемые услуги. Описание полей приведено в таблице 5.
Таблица 5. Таблица “Discounts”(“Система скидок”)
PK |
FK |
Поле |
Тип |
Размер |
NN |
Описание |
|
|
ID_DISCOUNT |
INTEGER |
|
|
Код скидки |
|
|
NAME |
VARCHAR |
11 |
|
Наименование скидки |
|
|
DISCOUNT |
SMALLINT |
|
|
Величина скидки |
|
|
COMMENTARY |
VARCHAR |
60 |
|
Описание скидки |
Таблица “Price_List”(“Прейскурант”) предназначена для хранения данных о цене на услуги фитнес клуба. Цена указывается за одно занятие. Описание полей приведено в таблице 6.
Таблица 6. Таблица “Price_List”(“Прейскурант”)
PK |
FK |
Поле |
Тип |
Размер |
Масштаб |
NN |
Описание |
|
|
ID_WORKER |
INTEGER |
|
|
|
Код сотрудника |
|
|
ID_SERVICE |
INTEGER |
|
|
|
Код услуги |
|
|
PRICE |
NUMERIC |
15 |
2 |
|
Цена за одно занятие |
Таблица “Abonements”(“Абонементы”) предназначена для хранения данных о покупке абонемента на выбранные клиентом занятия. Один клиент может иметь несколько абонементов. Абонемент выдается на определенный срок, поэтому фиксируется дата начала (поле “DATA_START”) и дата окончания (“DATA_FINISH”) действия абонемента. Сумма абонемента учитывает все выкупленные занятия, данные о которых для каждого абонемента содержатся в таблице “Services_abonement”(“Услуги клиента”). Начальная сумма (поле “FIRST_SUMMA”) вычисляется путем суммирования всех значений произведения цены за занятие (поле “PRICE” из таблицы “Price_list”(“Прейскурант”)) на количество выкупленных занятий (поле “NUMBER” из таблицы “Services_abonement”(“Услуги клиента”)) для заданного абонемента. Окончательная сумма(“FINAL_SUMMA”) получается путем произведения начальной суммы на величину скидки, код которой указан в поле “ID_DISCOUNT”. Поле “ID_DISCOUNT” может быть пустым, если клиент не имеет скидку. В этом случае начальная сумма равна окончательной сумме. В поле “ID_WORKER” указывается “Код сотрудника”, который оформлял абонемент. Это требуется для расчета заработной платы сотрудникам-администраторам. Описание полей приведено в таблице 7.
Таблица 7. Таблица “Abonements”(“Абонементы”)
PK |
FK |
Поле |
Тип |
Размер |
Масштаб |
NN |
Описание |
|
|
ID_ABONEMENT |
INTEGER |
|
|
|
Код абонемента |
|
|
ID_CLIENT |
INTEGER |
|
|
|
Код клиента |
|
|
DATE_START |
DATE |
|
|
|
Дата начала действия абонемента |
|
|
DATE_FINISH |
DATE |
|
|
|
Дата конца действия абонемента |
|
|
FIRST_SUMMA |
NUMERIC |
15 |
2 |
|
Начальная сумма оплаты выкупленных занятий |
|
|
ID_DISCOUNT |
INTEGER |
|
|
|
Код скидки |
|
|
FINAL_SUMMA |
NUMERIC |
15 |
2 |
|
Окончательная сумма оплаты выкупленных занятий |
|
|
ID_WORKER |
INTEGER |
|
|
|
Код сотрудника, оформившего абонемент |
Таблица “Services_abonement”(“Услуги клиента”) предназначена для хранения данных о количестве выкупленных занятиях клиента.
Описание полей приведено в таблице 8.
Таблица 8. Таблица “Services_abonement”(“Услуги клиента”)
PK |
FK |
Поле |
Тип |
Размер |
Масштаб |
NN |
Описание |
|
|
ID_ABONEMENT |
INTEGER |
|
|
|
Код абонемента |
|
|
ID_TIMETABLE |
INTEGER |
|
|
|
Код расписания занятий |
|
|
NUMBER |
SMALLINT |
|
|
|
Количество занятий |
Таблица “Timetable” (“Расписание занятий”) предназначена для хранения данных о расписании занятий, проводимых в фитнес клубе. В нем указаны код услуги, код сотрудника, проводящего данное занятие, помещение, в котором проходит занятие, день недели и время начала занятия. Стандартно каждое занятие длится 1 час. Расписание занятий не расписано по дням, потому что клиентам удобней ориентироваться по дням недели. Описание полей приведено в таблице 9.
Таблица 9. Таблица “Timetable”(“Расписание занятий”)
PK |
FK |
Поле |
Тип |
Размер |
Масштаб |
NN |
Описание |
|
|
ID_TIMETABLE |
INTEGER |
|
|
|
Код расписания занятия |
|
|
ID_WORKER |
INTEGER |
|
|
|
Код сотрудника, проводящего занятия |
|
|
ID_SERVICE |
INTEGER |
|
|
|
Код услуги |
|
|
HALL |
VARCHAR |
20 |
|
|
Наименование помещения |
|
|
ID_WEEK |
INTEGER |
|
|
|
Код дня недели |
|
|
TIME_WORK |
VARCHAR |
5 |
|
|
Время начала занятия |
Таблица “Register”(“Журнал посещений”) предназначена для хранения данных о посещении занятий клиентами.
Описание полей приведено в таблице 10.
Таблица 10. Таблица “Register”(“Журнал посещений”)
PK |
FK |
Поле |
Тип |
Размер |
Масштаб |
NN |
Описание |
|
|
DATE_REGISTER |
DATE |
|
|
|
Дата регистрации |
|
|
ID_TIMETABLE |
INTEGER |
|
|
|
Код расписания |
|
|
ID_ABONEMENT |
INTEGER |
|
|
|
Код абонемента |
При модификации БД получилось еще несколько таблиц.
Таблица “Jobs”(“Должности”) предназначена для хранения данных о должностях, занимаемых сотрудниками. Поле “FLAG_USLUGA” (“Флаг оказания услуги”) может принимать значение 1 или 0. Если должность имеет отношение к оказанию инструкторских услуг клиенту, то ставится 1. Описание полей приведено в таблице 11.
Таблица 11. Таблица “Jobs”(“Должности”)
PK |
FK |
Поле |
Домен |
Тип |
Размер |
NN |
Описание |
|
|
ID_JOB |
|
INTEGER |
|
|
Код должности |
|
|
NAME |
|
VARCHAR |
20 |
|
Наименование должности |
|
|
FLAG_USLUGA |
BOOLEAN |
SMALLINT |
|
|
Флаг оказания услуги |
Таблица “Halls”(“Помещения”) предназначена для хранения данных о помещениях, в которых происходят занятия. Описание полей приведено в таблице 12.
Таблица 12. Таблица “Halls”(“Помещения”)
PK |
FK |
Поле |
Тип |
Размер |
NN |
Описание |
|
|
ID_HALL |
INTEGER |
|
|
Код помещения |
|
|
NAME |
VARCHAR |
20 |
|
Наименование помещения |
Таблица “Interval_tyme”(“Интервалы планирования”) предназначена для хранения данных о рабочем времени сотрудников-инструкторов. Описание полей приведено в таблице 13.
Таблица 13. Таблица “Interval_tyme”(“Интервалы планирования”)
PK |
FK |
Поле |
Тип |
Размер |
NN |
Описание |
|
|
ID_ITIME |
INTEGER |
|
|
Код интервала планирования |
|
|
WEEK |
VARCHAR |
11 |
|
День недели |
|
|
TIMES |
VARCHAR |
5 |
|
Время |
В БД используется один домен “Boolean” (“Логический”). Описание домена приведено в таблице 14.
Таблица 14. Домены
Домен |
Тип |
NN |
Check |
Описание |
Boolean |
SMALLINT |
|
VALUE IN (1,0) |
Поля, определяемые на этом домене, могут принимать только целочисленные значения, равные 0 или 1 |