Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранить режим работы в базе данных / 19 сообщений из 19, страница 1 из 1
29.03.2010, 17:50
    #36548808
DastiX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
Добрый день)
Есть необходимость создать график работы предприятий.
Выглядеть должно примерно так:

Режим работыПн. 09:00-21:00Вт. 09:00-21:00Ср. 09:00-21:00Чт. 09:00-21:00Пт. 09:00-19:00Сб. 11:00-19:00Вс. 11:00-19:00
Соответственно для каждого предприятия такая штука.
Вот я хотел бы спросить у вас, как это лучше реализовать?
У меня есть вариант "Предприятия+Время_работы":
Предпр_ИДПн.НачалоПн.КонецВт.НВт.КСр.НСр.КЧт.НЧт.КПт.НПт.КСб.НСб.КВс.НВс.К109:0021:0009:0021:0009:0021:0009:0021:0009:0019:0011:0019:0011:0019:00.............................................
Но по-моему это глупый вариант ), слишком много избыточных данных...

Есть вариант с таблицей "Предприятия+Время_Работы+Интервал":
Предпр_ИДПн.Вт.Ср.Чт.Пт.Сб.Вс.1id1id1id1id1id2id3id3........................
где
ИДНачалоКонецid109:0021:00id209:0019:00id311:0019:00.........
Так гораздо экономичнее...
Но в таком случае вычислять есть ли уже такой интервал, если есть то указывать его, а если нету, то добавлять новый, т.е. либо добавлять столбец с контрольной суммой, либо вычислять в программе...
Так вот, хотел бы узнать, мало ли кто сталкивался с такой задачей, есть ли какое-нибудь более элегантное решение?....
...
Рейтинг: 0 / 0
29.03.2010, 18:34
    #36548928
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
DastiX
Есть вариант с таблицей "Предприятия+Время_Работы+Интервал":
Предпр_ИДПн.Вт.Ср.Чт.Пт.Сб.Вс.1id1id1id1id1id2id3id3........................
где
ИДНачалоКонецid109:0021:00id209:0019:00id311:0019:00.........
Так гораздо экономичнее...
Но в таком случае вычислять есть ли уже такой интервал, если есть то указывать его, а если нету, то добавлять новый, т.е. либо добавлять столбец с контрольной суммой, либо вычислять в программе...
Так вот, хотел бы узнать, мало ли кто сталкивался с такой задачей, есть ли какое-нибудь более элегантное решение?....
Зачем так усложнять себе жизнь?
...
Рейтинг: 0 / 0
29.03.2010, 18:38
    #36548940
_kyky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
IMHO : Cмысл экономить есть если собираются фактические данные которые не совпадают с плановыми, а если каждая неделя одинаковая, то у предприятия П1 есть недельный график Г1.
...
Рейтинг: 0 / 0
29.03.2010, 19:26
    #36549050
DastiX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
AmKad
Зачем так усложнять себе жизнь?

Есть варианты попроще?

to _kyky
Ну так и есть, у каждого предприятия свой график работы.
Но только этих предприятий в наличии пятьсот и в перспективе может добавиться сколько угодно.
И если для каждого предприятия делать собственный график работы, который может повторяться с другими графиками, а может и нет, то получается очень большая таблица с совершенно не нужными данными...
Т.е. если у ста предприятий одинаковый график, то нужна таблица 100строкX15полей.
Это если первым способом.
А если вторым, то 100строкX8полей+7строкX7полей.
Т.е. фактическое уменьшение таблицы в два раза на лицо.

Конечно все это не обязательно, не думаю что это очень сильно повлияет на скорость или размеры, но просто хочется научится делать изначально правильно...
А не потом, когда вдруг база при привышении энного количества записей начинает работать медленнее, чем дохлая черепаха.
...
Рейтинг: 0 / 0
29.03.2010, 19:29
    #36549060
DastiX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
А особенно будет заметна экономия, когда таблица "Интервал" охватит весь диапазон стандартных интервалов работы. Т.е. заполняться будет только таблица "График"
...
Рейтинг: 0 / 0
29.03.2010, 21:44
    #36549266
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
ну а чем

Предприятие-Дата-Начало-Конец

не устраивает ?

или если графики стабилиные и периодические то вообще 2 таблицы

1. График-Начало-Конец
2. Предприятие-График


какие там большие таблицы ? в три колонки пару сотен записей в день ? (если у вас столько предприятий)


или раскройте задачу для чего вами придуманные сложности ?
...
Рейтинг: 0 / 0
30.03.2010, 11:23
    #36550008
_kyky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
Изначально правильно, по моим понятиям) так
Т1 Список предприятий (ID_ORG,NAME)
Т2,T2.1 График работы (ID_GR,NAME) и (ID_GR,DAY,TIME_FROM,TIME_TO )
Т3 Прериод действитя графика (ID_ORG,ID_GR,DATE_FROM ,DATE_TO)

При смене графика в T3
старая запись закрывается предыдущим днем
новая открывается с текущего
...
Рейтинг: 0 / 0
30.03.2010, 11:32
    #36550035
_kyky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
Таким образом :
1.хранится только ссылка на график который не повторяется каждый раз для предприятия
2.в случае изменения графика хранится история

непонятно пака как все это планируется использовать,
мож из этого структура вытекает более
правильная

Удачи!
...
Рейтинг: 0 / 0
30.03.2010, 11:40
    #36550056
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
зачем две последние колонки в Т3 ? они уже есть в Т2.1
...
Рейтинг: 0 / 0
30.03.2010, 12:28
    #36550218
_kyky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
Не путайте график работы по дням недели с периодом действия графика, те с какой и по какую дату он действует
...
Рейтинг: 0 / 0
30.03.2010, 13:20
    #36550364
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
_kykyНе путайте график работы по дням недели с периодом действия графика, те с какой и по какую дату он действует

а зачем ? в таблице изменений режимов

Предприятие-График-Дата

соответственно + две таблицы (предприятий и графиков с временем и датой рабочего дня)

и всё

как вы потом в отчетах будет выборку действовавших графиков по периоду делать ? координатно-шахматным методом ?
...
Рейтинг: 0 / 0
30.03.2010, 13:23
    #36550372
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
вообще какая цель проекта ?

вести учет времени или планировать его ?

если только второе тогда возможно вы и правы... если только первое или и то и другое тогда не совсем
...
Рейтинг: 0 / 0
30.03.2010, 15:31
    #36550804
_kyky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
Насчет периода действия это моя отсебятина, изначально у автора такого нет, но то что графики меняются это кмк объективная реальность
...
Рейтинг: 0 / 0
30.03.2010, 16:10
    #36550909
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
_kykyНасчет периода действия это моя отсебятина, изначально у автора такого нет, но то что графики меняются это кмк объективная реальность

ну и пусть себе меняются... какой был график в какой день будет видно в таблице и не надо плясать с бубном насчет запроса собирая периоды действия графиков попадающие в периоды расчета зп по пересечению их дат начала и конца действия о_О

а вот если ТОЛЬКО планировать надо это да... другой вопрос там может и пригодиться
...
Рейтинг: 0 / 0
31.03.2010, 12:51
    #36552651
_kyky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
от задачи все зависит,
например если график меняется раз в сезон
и по постановке хочется знать какой он был прошлой осенью
я так предполагал,
если это неважно можно не историзировать изменения графика
...
Рейтинг: 0 / 0
31.03.2010, 17:35
    #36553618
DastiX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
Граждане, и это вы говорите мне, что я все усложняю)
Мне всего-то и надо что бы у меня в информации о предприятии был режим работы. И все.
Вот вы подходите к аптеке, а там табличка:

Пн.-Пт. 09:00-21:00
Сб. 11:00-21:00
Вс. Выходной

Никаких вычислений с этой информацией не будет. Только отображение.
И мне интересно, как можно хранить эту информацию в более уплотненном и корректном виде?
Всего-то..а вы уже и планирование и шахматка...)
...
Рейтинг: 0 / 0
31.03.2010, 18:34
    #36553791
_kyky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
Так и храните тогда текстом, и не парьтесь проектированием

ORG_ID,ORDER_ID,TEXT
1,1, Пн.-Пт. 09:00-21:00
1,2, Сб. 11:00-21:00
1,3, Вс. Выходной
...
Рейтинг: 0 / 0
31.03.2010, 18:47
    #36553816
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
...
Рейтинг: 0 / 0
31.03.2010, 19:03
    #36553849
DastiX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранить режим работы в базе данных
Ну это конечно хорошо, но не очень удобно с точки зрения ввода, редактирования и отображения информации.
Я хочу что бы она была структурирована и отображалась как я указал в начале темы.
Ну да ладно. Чего-то мне сегодня все это лень делать :) сделаю как текст)
Спасибо за ответы)))
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранить режим работы в базе данных / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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