Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
маркин.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
928.26 Кб
Скачать
  1. Описание структуры базы данных

Кратко опишем назначение каждой таблицы и ее полей.

Таблица “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