Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД для расписания / 14 сообщений из 14, страница 1 из 1
06.03.2007, 07:18
    #34372946
щюплый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
Дано N..., нет М агрегатов, каждый из которых в течение рабочего дня находится либо в состоянии вкл. либо в состоянии выкл. Существует расписание работы каждого агрегата на год вперед, т.е. для каждого из 365 следующих дней указано вкл. или выкл. Требуется создать оптимальную структуру БД для хранения этого расписания.
...
Рейтинг: 0 / 0
06.03.2007, 09:18
    #34373117
anjey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
А чё тут голову ломать, это простая табличка в три поля
ID_агрегата integer - код/номер (или что там есть) агрегата
date DateTime - дата года
status integer - =1 агрегат вкл, =0 агргет выкл.
...
Рейтинг: 0 / 0
06.03.2007, 09:50
    #34373259
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
щюплыйоптимальную
С точки зрения чего?
...
Рейтинг: 0 / 0
06.03.2007, 16:28
    #34375094
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
Например
Код: plaintext
1.
2.
3.
Turn_Agr_on(
ID_агрегата integer - код агрегата
date DateTime - дата когда агрегат вкл
)
или
Код: plaintext
1.
2.
3.
4.
5.
6.
Agr_Month_Status(
ID_агрегата integer - код агрегата
Year - год
Status01m integer - sum(status(i) * 2**(i-1),  i-номер дня первого месяца)
..
Status12m integer
)
но не только конечно.
...
Рейтинг: 0 / 0
06.03.2007, 16:34
    #34375122
Сахават Юсифов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
ModelRНапример
Код: plaintext
1.
2.
3.
Turn_Agr_on(
ID_агрегата integer - код агрегата
date DateTime - дата когда агрегат вкл
)
или
Код: plaintext
1.
2.
3.
4.
5.
6.
Agr_Month_Status(
ID_агрегата integer - код агрегата
Year - год
Status01m integer - sum(status(i) * 2**(i-1),  i-номер дня первого месяца)
..
Status12m integer
)
но не только конечно.

Агрегат_ИД
Календарь_ИД
:)
...
Рейтинг: 0 / 0
06.03.2007, 17:19
    #34375305
щюплый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
Сергей Васкецов щюплыйоптимальную
С точки зрения чего?
Да, конечно, забыл уточнить, что оптимальным хочется сделать скорость запросов к таблице. Просто если делать по простейшей схеме, то при 1К агрегатов в таблице будет уже 365К записей и поиск по такому объему уже довольно напряжен.
...
Рейтинг: 0 / 0
06.03.2007, 17:58
    #34375455
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
Сахават Юсифов
Агрегат_ИД
Календарь_ИД
:)+Число_дней_включен - хоть одно не ИД поле для красоты:)
...
Рейтинг: 0 / 0
06.03.2007, 18:50
    #34375637
BULK INSERT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
хорошая здача

есть где пооптимальничать


нет ли допущений о взаимоисключающем состоянии агрегатов
нет ли допущений о длительности пребывания агрегата в одном состоянии (днях)
нет ли допущений о состоянии агрегата в выходной (не рабочий) день

каков порядок M? больше 365?
каков календарь рабочих дней
...
Рейтинг: 0 / 0
06.03.2007, 20:48
    #34375885
Сахават Юсифов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
ModelR Сахават Юсифов
Агрегат_ИД
Календарь_ИД
:)+Число_дней_включен - хоть одно не ИД поле для красоты:)

Календарь для каждого ресурса - свой (обычно несколько базовых и настраиваемые). Обычно это периодическая хреновина и имеет версии (срок действия) "с ... по" - могут быть дни, часы, минуты и т.д. в разных формах и показывает доступность ресурса. Кроме того, бывают календари - исключения.
Вообще очень сложная штуковина я Вам скажу. :)
...
Рейтинг: 0 / 0
06.03.2007, 20:48
    #34375887
иНос
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
щюплыйТребуется создать оптимальную структуру БД для хранения этого расписания.
структура - фигня.
а вот полуавтоматизировать составление распиания - эт да, задача :)
...
Рейтинг: 0 / 0
06.03.2007, 20:52
    #34375894
иНос
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
Сахават ЮсифовВообще очень сложная штуковина я Вам скажу. :)
я когда такой щтукой занимался сначала думал: да что там, есть учебный план, преподаватели, кабинеты. полным перебором, конечно, бред :) численные методы вспомнил - вроде нормальн всё, приближенно. а потом началось: некоторые преподаватели болеют, другие могуд читать лекции с даты "с" по дату "по", третьи по индивидуальному трудовому договору работают и любят отдыхать в пятницу, кабинеты бывают заняты внепланово и т.п. получилось сделать, но НА НЕДЕЛЮ и то, с возможностью корректирования.
...
Рейтинг: 0 / 0
06.03.2007, 21:15
    #34375921
BULK INSERT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
иНосно НА НЕДЕЛЮ и то, с возможностью корректирования.

это уже сложности реализации интерфейса а не сложности оптимизации схемы БД

ИМХО само решение условно выглядит как массив значений Вкл-Выкл с размерностью 365(дней) х М(агрегатов)

вот только как его заполнять/редактировать
...
Рейтинг: 0 / 0
06.03.2007, 21:36
    #34375949
иНос
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
BULK INSERTИМХО само решение условно выглядит как массив значений Вкл-Выкл с размерностью 365(дней) х М(агрегатов)
дней гораздо меньше вообще-то. к тому же их количество неопределенно. так как план составляется в часах, а не в днях.
...
Рейтинг: 0 / 0
06.03.2007, 22:19
    #34375990
BULK INSERT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД для расписания
иНосдней гораздо меньше вообще-то. к тому же их количество неопределенно.

вот как раз потому, что их количество не определено дней именно что 365 и ни днем меньше...

если бы хоть год был бы определен - могло бы быть 364

иНостак как план составляется в часах, а не в днях.

по ТЗ в вопросе про часы небыло - было имено про рабочие дни

щюплыйт.е. для каждого из 365 следующих дней указано вкл. или выкл.

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


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