powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Формализация таблицы Периодов
1 сообщений из 1, страница 1 из 1
Формализация таблицы Периодов
    #37955320
wizzard2009
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица цен.
Она содержит множество граф, от кот. цена зависит.
СтоимостьПроживания( ID ,КатегорияНомера, ВариантПроживания, ВидПитания, ВидЛечения, ВидПериода,Цена.....)
Смысл в том, чтобы по каждой строке однозначно определить, что входит в стоимость.
Например (привожу текстом, чтобы было понятно, на самом деле там ID справочников):
IDКатегорияНомера ВариантПроживания ВидПитания ВидЛечения ВидПериодаЦена1 1-местный Взрослый 3-х разовое питание Без лечения Будни 3002 1-местный Ребенок 3-х разовое питание Без лечения Будни 2003 1-местный Взрослый 3-х разовое питание Без лечения Выходные 4002 1-местный Ребенок 3-х разовое питание Без лечения Выходные 300.Есть справочник периодов ( ID , Наименование), который необходимо нормализовать,
с тем, чтобы правильно рассчитать на какой день выпадает та или иная стоимость.
В таблице цен периоды между собой не пересекаются для 1 выбранного номера.
В справочнике Периоды вот такие данные:
ID Наименование11 день23 дня33 дня / 4 ночи41; 2; 3; 4; 5; 7 января - (тут видимо новогодние праздники)531 декабря;6; 8; 9 января - (тут видимо новогодние праздники)6Неделя (с понедельника по понедельник; с пятницы по пятницу)7Будни8Выходные9Выходные и праздники10Будни (1 ночь) с понедельника по четверг11Будни (2-е суток) (пн-ср; ср-пт)12Воскресенье-вторник13Воскресенье-четверг14До 10 дней15До 12 дней16До 4 часов17На 1-6 суток18От 3 до 7 дней19От 3 ночей20От 3 месяцев21с 01.07.12г. по 31.08.12г.22с 01.09.12г. по 28.12.12г.23Свыше 5 дней24С воскресенья по пятницу
И остальное в вариациях, например, от 10 дней, понедельник - чертверг, от 3 до 10 дней, 14 дней, 22 дня и т.п.

Что предполагается сделать:
1. Добавить в таблицу стоимость поле Туры.
В этом поле будет содержаться дата начала - дата окончания тура. (ID, Наименование, ДатаНачала, ДатаОкончания)
2. Добавить справочник тип периода (ID,Наименование)
вот с таким содержимым:
IDНаименование1 Час2 День3 Неделя4 Месяц

3. Преобразовать таблицу Периоды вот так:
( ID , Наименование, ID_ТипПериодаОт, От, ID_ТипПериодаДо, До, Дней, Ночей, ID_УточнениеДняНедели)
УточнениеДняНедели это вот такая таблица
УточнениеДняНедели( ID ,ID_Периода,Поднедельник,Вторник,Среда,Четверг,Пятница,Суббота,Воскресенье, От, До)
где все поля булевы, то есть если период с понедельника по среду, то поля Понедельник, Вторник, Среда будут иметь значение TRUE.
Тогда мы получим примерно такие данные:
ID Наименование ID_ТипПериодаОт От ID_ТипПериодаДо До Дней Ночей ID_УточнениеДняНедели11 деньNULLNULLNULLNULL1NULLNULL23 дняNULLNULLNULLNULL3NULLNULL33 дня / 4 ночиNULLNULLNULLNULL34NULL41; 2; 3; 4; 5; 7 января) - ??531 декабря; 6; 8; 9 января) - ??6Неделя (с понедельника по понедельник; с пятницы по пятницу)NULLNULLNULLNULLNULLNULL17БудниNULLNULLNULLNULLNULLNULL28ВыходныеNULLNULLNULLNULLNULLNULL39Выходные и праздники- ??NULLNULLNULLNULLNULLNULL410Будни (1 ночь) с понедельника по четверг ??NULLNULLNULLNULLNULLNULL511Будни (2-е суток) (пн-ср; ср-пт)NULLNULLNULLNULL1NULL612Воскресенье-вторникNULLNULLNULLNULL1NULL713Воскресенье-четвергNULLNULLNULLNULL1NULL814До 10 днейNULLNULL210NULLNULLNULL15До 12 днейNULLNULL212NULLNULLNULL16До 4 часовNULLNULL141NULLNULL17На 1-6 суток21261NULLNULL18От 3 до 7 дней2327NULLNULLNULL19От 3 ночейNULLNULLNULLNULLNULLNULLNULL20От 3 месяцев33NULLNULLNULLNULLNULL21с 01.07.12г. по 31.08.12г.22с 01.09.12г. по 28.12.12г.23Свыше 5 дней25NULLNULLNULLNULLNULL)
Таблица УточнениеДняНедели (столбец наименование ввел, чтобы было понятно, о чем речь)
IDID_ПериодаПоднедельникВторникСредаЧетвергПятницаСубботаВоскресенье От ДоНаименование11NULLNULLNULLNULLNULLNULLNULL11Неделя (с понедельника по понедельник; с пятницы по пятницу)21NULLNULLNULLNULLNULLNULLNULL77Неделя (с понедельника по понедельник; с пятницы по пятницу)32TRUETRUETRUETRUETRUENULLNULLNULLNULLБудни43NULLNULLNULLNULLNULLTRUETRUENULLNULLВыходные56TRUETRUETRUENULLNULLTRUETRUENULLNULLБудни (2-е суток) (пн-ср; ср-пт)66NULLNULLTRUETRUETRUENULLNULLNULLNULLБудни (2-е суток) (пн-ср; ср-пт)77NULLNULLNULLNULLNULLNULLNULL72Воскресенье-вторник88NULLNULLNULLNULLNULLNULLNULL74Воскресенье-четверг
Как вариант, строки 5 и 6 можно сохранить вот так:
IDID_ПериодаПоднедельникВторникСредаЧетвергПятницаСубботаВоскресенье От ДоНаименование56NULLNULLNULLNULLNULLNULLNULL13Будни (2-е суток) (пн-ср; ср-пт)66NULLNULLNULLNULLNULLNULLNULL35Будни (2-е суток) (пн-ср; ср-пт)

Со строками 4,5,9 и 10 из таблицы Периоды не знаю как быть.
Строки 21 и 22 перейдут в Туры.
Таблицу Туры не привожу, за очевидностью.
Предполагаю сделать 2 таблицы
Туры(ID,Наименование)
ДатаТура(ID,ID_Тура, С,По)
И в СтоимостьПроживания включить графу Туры, кот. содержит ID_Тура.

Спецы, у кого какое может быть мнение, касаемо выбранной структуры?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Формализация таблицы Периодов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]