| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Структура таблицы |
| Автор: Gold Dragon 14.7.2005, 11:07 |
| Как организовать структуру таблицы "Режим работы предприятия"? т.е. может быть такое - понедельник - с 8 до 18 - вторник - с 8 до 18 - среда - с 8 до 18 - перевыв с 13-14 - четверг - с 8 до 18 - пятница - с 8 до 18 - перевыв с 13-14 - суббота - с 8 до 18 - воскресенье - выходной и это нужно привязать с конкретному предприятию.. |
| Автор: ТоляМБА 14.7.2005, 11:20 |
| NameDay(string);BegWork(real);EndWork(real);BegBr(real);EndBr(real) день недели;начало работы;конец работы;начало перерыва; конец перерыва. Воскресенье можно вообще не вводить (зависит от конкретной задачи, опиши подробнее). |
| Автор: Gold Dragon 14.7.2005, 11:31 |
| как ещё подробнее? Описание режима работы организаций доп. условия - выходной может быть любой день - перерыва может не быть - может работать круглосуточно - во все дни один и тот же график |
| Автор: ТоляМБА 14.7.2005, 12:35 | ||||||||
А если человек по служебке вышел на работу, то что - не оплачивать? Тогда может ещё ввести колонку признака дня: выходной/рабочий (её можно сделать Boolean).
Ставь в полях BegBr;EndBr нули
BegWork=0,00, EndWork=24,00 А про задачу: для чего нужна тебе эта таблица? Для учёта рабочего времени? Напр вычислить продолжительность рабочего дня:
Правда будут траблы если во вторую смену обед начинается в 23.30 а заканчивается в 00.30 Но тгда можно изменить структуру: EndBr убрать вообще, а сделать LengthBr(real) - длина обеденного перерыва. Тогда считаться по другой формуле будет |
| Автор: Akina 14.7.2005, 12:55 |
| Red Dragon Для каких целей будет использоваться эта таблица? в зависимости от этого оптимальная структура различна... либо описывай полностью всю задачу приложения, которое использует эту таблицу, либо ничего вразумительного сказать нельзя. |
| Автор: Gold Dragon 14.7.2005, 14:03 |
| это график работы заведения... пишу сайт про рестораны (бары, кафе).. вот и хочется всё это как-то в таблицу Есть вариант всё в текстовое и не мудрить, но это не красиво.. Просто у некторых есть "с 10:00 и до последнего клиента", а у некоторых с двойным перерывом. И ни как не могу понять как это всё описать |
| Автор: Akina 14.7.2005, 16:39 |
| Тогда опиши только интервалы: ID (куда ж без него...) IntervalStart IntervalEnd IntervalType Причем интервалы - как подсети, мелкие перекрывают крупные, а время считается в часах от начала недели. Скажем, если "среда - с 8 до 18 - перерыв с 13-14", то 1 среда 56.00 66.00 работа 2 среда 61.00 62.00 обед 56.00 - это 2 дня по 24 часа (пн, вт) плюс 8 часов от среды. Поделить на 24 при выводе несложно... При таком подходе можно описывать работу сквозь полночь (разрыв на 2 куса будет только в полночь с вс на пн)... работа "с 10:00 и до последнего клиента" опишется интервалом в 24 часа (скажем для понедельника это будет запись 10.00 34.00 работа), можно описывать работу с 2 и более перерывами (3 записи получится), можно описывать сменную работу (за сутки это будет 3 записи - по 1 для каждой смены)... Подумай над таким подходом... |