powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД для расписания
14 сообщений из 14, страница 1 из 1
Структура БД для расписания
    #34372946
щюплый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дано N..., нет М агрегатов, каждый из которых в течение рабочего дня находится либо в состоянии вкл. либо в состоянии выкл. Существует расписание работы каждого агрегата на год вперед, т.е. для каждого из 365 следующих дней указано вкл. или выкл. Требуется создать оптимальную структуру БД для хранения этого расписания.
...
Рейтинг: 0 / 0
Структура БД для расписания
    #34373117
anjey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чё тут голову ломать, это простая табличка в три поля
ID_агрегата integer - код/номер (или что там есть) агрегата
date DateTime - дата года
status integer - =1 агрегат вкл, =0 агргет выкл.
...
Рейтинг: 0 / 0
Структура БД для расписания
    #34373259
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
щюплыйоптимальную
С точки зрения чего?
...
Рейтинг: 0 / 0
Структура БД для расписания
    #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
Структура БД для расписания
    #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
Структура БД для расписания
    #34375305
щюплый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Васкецов щюплыйоптимальную
С точки зрения чего?
Да, конечно, забыл уточнить, что оптимальным хочется сделать скорость запросов к таблице. Просто если делать по простейшей схеме, то при 1К агрегатов в таблице будет уже 365К записей и поиск по такому объему уже довольно напряжен.
...
Рейтинг: 0 / 0
Структура БД для расписания
    #34375455
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов
Агрегат_ИД
Календарь_ИД
:)+Число_дней_включен - хоть одно не ИД поле для красоты:)
...
Рейтинг: 0 / 0
Структура БД для расписания
    #34375637
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хорошая здача

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


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

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

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

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

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

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

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

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

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

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

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

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


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