|
|
|
Формализация таблицы Периодов
|
|||
|---|---|---|---|
|
#18+
Есть таблица цен. Она содержит множество граф, от кот. цена зависит. СтоимостьПроживания( 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_Тура. Спецы, у кого какое может быть мнение, касаемо выбранной структуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 03:56 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=45&tid=1541548]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
22ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 307ms |

| 0 / 0 |
