powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / табель учёта рабочего времени и график отпусков
5 сообщений из 5, страница 1 из 1
табель учёта рабочего времени и график отпусков
    #34583947
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим, есть такая таблица учёта рабочего времени:

Код: plaintext
1.
2.
3.
Сотрудник	(ссылка на справочник)
Состояние	(ссылка на справочник)
Начало		дата+время
Конец		дата+время

Дополнительно к ней триггер или процедура заполнения, чтобы сотрудник в один момент времени находился только в одном состоянии, т.е. нельзя одновременно быть на больничном и в отпуске официально. Для уменьшения объёма данных отработанное время не отмечаем.

Нужно сделать грфик отпусков. Он укладывается в эту же таблицу, кроме ограничения на одно сотояние в каждый момент времени. Ибо, если он пошёл в отпуск в запланированные сроки, то он находится в двух состояниях: запланированного и реального отпуска.

Делать ещё одну идентичную таблицу не хочется, отменять ограничение на однозначность состояния тоже.

Подскажите другой вариант, может быть усложнение схемы. Искал по sql.ru, но конкретно по теме "график отпусков" очень мало информации. Про табель рабочего времени безотносительно графика отпусков- уже не то.
...
Рейтинг: 0 / 0
табель учёта рабочего времени и график отпусков
    #34584007
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще всего - ввести понятие "группа состояний" и требовать нахождения сотрудника в любом количестве состояний одной группы. Фактически это выразится в добавлении в справочник "состояние" поля "группа", которое заполняется уникально для всех, кроме отпусков, делящих одну группу.

Другой вопрос, что тема запланировано/реально может всплыть и во многих других ситуациях (сходу приходит в голову декретный отпуск). Поэтому, может быть, правильнее будет сделать чуть более сложную схему, внести именно такой разрез в данные. Это позволит описать, например, следующую ситуацию:

Запланировано: работает 1-20, в отпуске 21-30
Выполнено: работает 1-22, в отпуске 23-30.
...
Рейтинг: 0 / 0
табель учёта рабочего времени и график отпусков
    #34584921
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С добавлением поля не лишено смысла. Дополнительно выяснилось, что запланировано может сильно отличаться от выполнено, где указаны данные с типом дата. Запланировано может быть в виде- "конец июня" или просто "июнь".
...
Рейтинг: 0 / 0
табель учёта рабочего времени и график отпусков
    #34586060
dc93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запланировано может быть в виде- "конец июня" или просто "июнь".

ввести тип запланированного (справочник)

- точно
- неделя
- начало, середина, конец месяца
- на стыке месяцев

всеравно потребуется точная длительность отпуска, по типу запланированного вычисляем начало, например длительность: 2 недели, тип: на стыке месяцев, время: Май-Июнь 2007, получаем 28 05 - 08 06 (ну или другой алгоритм, не привязываясь к выходным дням)
...
Рейтинг: 0 / 0
табель учёта рабочего времени и график отпусков
    #34600058
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не делайте табель по диапазонам (с-по)!!!
Посмотрите стандартный отчет "табель учета рабочего времени" и оттолкнитесь от него.
Говоря конкретней, раскладывайте по дням.
Как вариант - таблица в которой столбцами являются дни месяца от 1 до 31. Допустимость ввода данных для конекретного числа месяца (чтобы не допустить заполнение на 31 февраля) контролируется на уровне бизнес-логики. Для каждого дня заполняется код (явка,отпуск,больничный и т.п.) и количество часов.
т.е. нельзя одновременно быть на больничном и в отпуске официально
как раз когда вы пытаетесь построть учет на диапазонах такие проблемы и возникают. Необходимо реализовывать всякие схемы на вытеснениях что не совсем простая задача. (Кстати больничный и отпуск можно взять на пол-дня, или теоритически :) пол-дня больничный, пол-дня отпуск)
Получить диапазоны из конечных дней гораздо проще, чем реализовывать схемы на вытеснениях с различным контролем ввода.
Типовая реализация учета рабочего времени - это табель по дням + настраиваемый индивидуальный график работы сотрудника (т.е. типовой цикл работы). Типовой цикл работы нужен для ведения табеля методом отклонений, что подразумевает автоматизированное первоначальное заполнение таблеля в сооттветствии с циклом работы, а затем его редактирование (внесение в него отклонний - больничные, отпуска и т.п.).
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / табель учёта рабочего времени и график отпусков
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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