powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Планировка должностей
12 сообщений из 12, страница 1 из 1
Планировка должностей
    #38684157
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть два объекта: ресурсы (человеческие) и должности. Надо сделать составитель расписаний, интерфейс которого будет как на картинке.
Один ресурс может занимать одну или несколько должностей. Ресурс может болеть, быть в отпуске, получать замечания, которые записываются в комментарии. Должность может занимать один ресурс, несколько ресурсов или никто. Пользователь должен видеть все пробелы (когда должность никто не исполняет, например, по причине болезни или в отпуске и без замены), а также все «перекрытия» (когда на одной должности несколько ресурсов).
Как это лучше хранить?
Вариант 1.
Код: sql
1.
Create table Activities (Id, PositionId, ResourceId, Month, Comment)

То есть для каждого периода несколько записей. Комментарии для каждого месяца свои, либо дублируются.
Вариант 1.
Код: sql
1.
Create table Activities (Id, PositionId, ResourceId, StartMonth, EndMonth, Comment)

Хранятся именно периоды. Комментарии для каждого периода без дублирования информации.
Вариант 3. Оба варианта плохие (предложить лучший).
...
Рейтинг: 0 / 0
Планировка должностей
    #38684715
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку Activity не составляют непрерывную последовательность, то хранить Activity лучше по второму варианту, с датой начала и конца у каждой. Кстати, о датах - у вас что, все болеют только с первого числа?

А вот комментарии в Activity лепить не надо. Судя по рисунку, комментарии - это вообще отдельная сущность, которая может относиться как раз к тому куску времени и должности, когда эту должность никто не занимал. Так что еще одна таблица:
Код: sql
1.
Create table Comments (Id, PositionId, StartMonth, EndMonth, Comment)



В интерфейсе комментарии нагляднее показывать не точечными красными уголками, а легким цветовым выделением диапазона, к которому относится комментарий.
...
Рейтинг: 0 / 0
Планировка должностей
    #38684760
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В первом случае контроль целостности данных тривиален, во втором - требует специальных усилий. Запросы "пересечений" и "пропусков" в первом варианте тоже как минимум не сложнее, чем во втором. Обновления, приводящие к обьединению/разбиению "непрерывных" участков - в первом гораздо проще.
Во втором варианте имхо только один плюс - простота перехода от помесячного учета к посуточному, если он в будущем понадобится
...
Рейтинг: 0 / 0
Планировка должностей
    #38684875
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинВо втором варианте имхо только один плюс - простота перехода от помесячного учета к посуточному, если он в будущем понадобится
А какие проблемы при этом переходе у первого варианта? Поменять Month на Date?
...
Рейтинг: 0 / 0
Планировка должностей
    #38684892
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherПоскольку Activity не составляют непрерывную последовательность, то хранить Activity лучше по второму варианту, с датой начала и конца у каждой. Кстати, о датах - у вас что, все болеют только с первого числа?

Непонятен формат первичной информации, на основании которого организовывается хранение.
Есть подозрение, что он ближе к второму варианту :).
Вывод: стоит как минимум хранить по-второму варианту.
Если есть потребность/полезный выхлоп - задействовать хранение ещё и по 1-му варианту.
...
Рейтинг: 0 / 0
Планировка должностей
    #38684897
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойКот МатроскинВо втором варианте имхо только один плюс - простота перехода от помесячного учета к посуточному, если он в будущем понадобится
А какие проблемы при этом переходе у первого варианта? Поменять Month на Date?
Проблема у первого варианта - возрастание в 30 раз количества записей ;)
...
Рейтинг: 0 / 0
Планировка должностей
    #38685022
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинАнатоЛойпропущено...

А какие проблемы при этом переходе у первого варианта? Поменять Month на Date?
Проблема у первого варианта - возрастание в 30 раз количества записей ;)

Для "составителя расписаний" от ТС - первый вариант не нужен. Не факт, что завтра появится потребитель составленных расписаний самописный "расчёт зароботной платы".

Смотри ниже:
АнатоЛойЕсли есть потребность/полезный выхлоп - задействовать хранение ещё и по 1-му варианту.

5 лет * 365 дней * 50 должностей * 150 сотрудников = 13 млн. записей. Фигня какая.
...
Рейтинг: 0 / 0
Планировка должностей
    #38685030
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойКот Матроскинпропущено...

Проблема у первого варианта - возрастание в 30 раз количества записей ;)

Для "составителя расписаний" от ТС - первый вариант не нужен.

Не понимаю термина "не нужен".
Он невозможен при организации данных по первому варианту? Почему?
Он неудобен при организации данных по первому варианту? Почему?
...
Рейтинг: 0 / 0
Планировка должностей
    #38685251
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинАнатоЛойпропущено...


Для "составителя расписаний" от ТС - первый вариант не нужен.

Не понимаю термина "не нужен".
Он невозможен при организации данных по первому варианту? Почему?
Он неудобен при организации данных по первому варианту? Почему?
Да, "не нужен" - это "возможен, но менее эффективен (менее удобен) по сравнению со вторым вариантом".
Чем менее удобен? Требует дополнительного преобразования входных данных, при этом никому пока не нужна полученная выгода от преобразования...
...
Рейтинг: 0 / 0
Планировка должностей
    #38685598
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой Чем менее удобен? Требует дополнительного преобразования входных данных, при этом никому пока не нужна полученная выгода от преобразования...
1. "Входные данные" - это, по словам ТС, некий гуй. Мне кажется как минимум неочевидным, что этот гуй внутри обязан быть олрганизован так, что "диапазонные" данные из него получать легче, чем "помесячные". Скажем, если этот гуй - экселевская таблица, то данные там лежат скорее в "помесячном" (поскольку поячеечном) виде.
2. Полученная выгода от преобразования в виде упрощения сохранения целостности даннных - никому не нужна? тоже спорно.
...
Рейтинг: 0 / 0
Планировка должностей
    #38686177
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинАнатоЛой Чем менее удобен? Требует дополнительного преобразования входных данных, при этом никому пока не нужна полученная выгода от преобразования...
1. "Входные данные" - это, по словам ТС, некий гуй. Мне кажется как минимум неочевидным, что этот гуй внутри обязан быть олрганизован так, что "диапазонные" данные из него получать легче, чем "помесячные". Скажем, если этот гуй - экселевская таблица, то данные там лежат скорее в "помесячном" (поскольку поячеечном) виде.
2. Полученная выгода от преобразования в виде упрощения сохранения целостности даннных - никому не нужна? тоже спорно.
Гуй - конечный результат.
Целостность входных данных единственно что можно проверять в текущей постановке. Как этому поможет первый вариант?
...
Рейтинг: 0 / 0
Планировка должностей
    #38686642
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойКот Матроскинпропущено...

1. "Входные данные" - это, по словам ТС, некий гуй. Мне кажется как минимум неочевидным, что этот гуй внутри обязан быть олрганизован так, что "диапазонные" данные из него получать легче, чем "помесячные". Скажем, если этот гуй - экселевская таблица, то данные там лежат скорее в "помесячном" (поскольку поячеечном) виде.
2. Полученная выгода от преобразования в виде упрощения сохранения целостности даннных - никому не нужна? тоже спорно.
Гуй - конечный результат.
Целостность входных данных единственно что можно проверять в текущей постановке. Как этому поможет первый вариант?

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


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