Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Расписание работы сотрудников / 12 сообщений из 12, страница 1 из 1
19.06.2007, 14:00
    #34604838
FireShock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
Встал важный вопрос. Надо создать таблицу, в которой хранить расписание работы сотрудников компании. И по запросу из своей программы знать, как сотрудник сейчас работает, какой в отпуске или просто не его смена.

Как правильно создать такую таблицу?

Если уже обсуждалось, то сорри. Надо делать быстро. Я пока буду искать.
Благодарю.
...
Рейтинг: 0 / 0
19.06.2007, 14:17
    #34604898
Сахават Юсифов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
FireShockВстал важный вопрос. Надо создать таблицу, в которой хранить расписание работы сотрудников компании. И по запросу из своей программы знать, как сотрудник сейчас работает, какой в отпуске или просто не его смена.

Как правильно создать такую таблицу?

Если уже обсуждалось, то сорри. Надо делать быстро. Я пока буду искать.
Благодарю.
Быстро это не получится.
...
Рейтинг: 0 / 0
19.06.2007, 14:44
    #34604998
FireShock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
Думаю так:

Указывать у сотрудника время начала/конца работы, дни недели работы (как в шедулере в винде).
А потом добавлять записи с неработой - отпуск, праздники, болезнь и т.п.
...
Рейтинг: 0 / 0
19.06.2007, 15:14
    #34605114
Сахават Юсифов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
FireShockДумаю так:

Указывать у сотрудника время начала/конца работы, дни недели работы (как в шедулере в винде).
А потом добавлять записи с неработой - отпуск, праздники, болезнь и т.п.
И на сколько дней?
...
Рейтинг: 0 / 0
19.06.2007, 15:23
    #34605169
FireShock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
В смысле, за сколько я это напишу? Не знаю, уже начал.

Таблица формируется пока такая (названия полей):

USER (Foreign Key на таблицу с фамилиями и почтовыми ящиками)
TYPE (работа, отпуск, болезнь)
SHEDULE_TYPE (Foreign Key на таблицу с вариантами расчета. Т.е. либо указаны дни недели работы с временем начала и окончания, либо ДатаВремя начала работы, продолжительность и период)
BEGIN_SHEDULE (время начала действия расписания)
END_SHEDULE (время окончания действия расписания)

BEGINTIME
ENDTIME
ПН (поля типа Bool)
ВТ
СР
ЧТ
ПТ
СБ
ВС

DURATION (продолжительность)
PERIOD (период рабочих смен)
...
Рейтинг: 0 / 0
19.06.2007, 17:23
    #34605711
Сахават Юсифов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
FireShockВ смысле, за сколько я это напишу? Не знаю, уже начал.


Нет, я имел ввиду на какой горизонт. :)

FireShock
Таблица формируется пока такая (названия полей):

USER (Foreign Key на таблицу с фамилиями и почтовыми ящиками)
TYPE (работа, отпуск, болезнь)
SHEDULE_TYPE (Foreign Key на таблицу с вариантами расчета. Т.е. либо указаны дни недели работы с временем начала и окончания, либо ДатаВремя начала работы, продолжительность и период)
BEGIN_SHEDULE (время начала действия расписания)
END_SHEDULE (время окончания действия расписания)

BEGINTIME
ENDTIME
ПН (поля типа Bool)
ВТ
СР
ЧТ
ПТ
СБ
ВС

DURATION (продолжительность)
PERIOD (период рабочих смен)

Здесь одна таблица?
Если нет, то что за?

BEGINTIME
ENDTIME
ПН (поля типа Bool)
ВТ
СР
ЧТ
ПТ
СБ
ВС

А если это таблица SHEDULE_TYPE, то каждый день может быть разбить по разному и могут циклически иметь разные разбивки по истечении времени и т.д.

а это еще одна таблица?
DURATION (продолжительность)
PERIOD (период рабочих смен)[/quot]

Смены могут иметь разные продолжительности в зависимости от времен года.
...
Рейтинг: 0 / 0
21.06.2007, 14:33
    #34610965
FireShock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
Вот текущий вариант:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  EMPLOYEE_ID       NUMBER not null,
  STATUS_ID         NUMBER not null,
  SHEDULE_TYPE_ID   NUMBER not null,
  SHEDULE_BEGIN     DATE not null,
  SHEDULE_END       DATE,
  WORKTIME_BEGIN    DATE,
  WORKTIME_END      DATE,
  MON               NUMBER default  0 ,
  TUE               NUMBER default  0 ,
  WED               NUMBER default  0 ,
  THU               NUMBER default  0 ,
  FRI               NUMBER default  0 ,
  SAT               NUMBER default  0 ,
  SUN               NUMBER default  0 ,
  WORK_DURATIONTIME NUMBER,
  WORK_PERIOD       NUMBER


авторЗдесь одна таблица?
Не одна.
EMPLOYEE_ID ссылка на таблицу с ФИО, телефоном, мылом и т.п.
STATUS_ID ссылка на типы записи. Т.е. характеризует она расписание работы, отпуска, отгула или больничного и т.п.
SHEDULE_TYPE_ID это ссылка на типы расчета расписания. Либо смотреть на эти поля
WORKTIME_BEGIN, WORKTIME_END, MON, TUE, WED, THU, FRI, SAT, SUN , которые показывают время начала/окончания рабочего дня и дни недели, когда он работает (true, false). Либо смотреть на поля WORK_DURATIONTIME, WORK_PERIOD , которые показывают продолжительность работы/отдыха (в минутах) и время периодичности смен (в минутах), т.е. работает, скажем, 9 часов каждые 24 часа. Во втором варианте время начала верется из поля SHEDULE_BEGIN .

SHEDULE_BEGIN и SHEDULE_END указывают срок действия этой записи. Т.е. больничный могут указать или перевели неожиданно в ночную смену. Тогда эта запись закрывается и заводится новая.

авторСмены могут иметь разные продолжительности в зависимости от времен года.
Надо подсказать мне, как в формате таблиц учесть как можно больше нюансов :-)
...
Рейтинг: 0 / 0
21.06.2007, 14:45
    #34611023
Сахават Юсифов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
Обычно делают базовые клендари + дают возможность ввести пользовательские клендари (на основе базовых или независимые). Работник (ресурс) привязывается к этим календарям (календари могут иметь приоритеты по пересечению).
...
Рейтинг: 0 / 0
21.06.2007, 15:23
    #34611209
FireShock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
Сахават ЮсифовОбычно делают базовые клендари + дают возможность ввести пользовательские клендари (на основе базовых или независимые). Работник (ресурс) привязывается к этим календарям (календари могут иметь приоритеты по пересечению).

По такому же примерно типу?

Задавать базовый не имеет смысла, так как у каждого сотрудника свое расписание (один ночами, другой сутки/трое и т.п.)
...
Рейтинг: 0 / 0
21.06.2007, 15:59
    #34611383
Сахават Юсифов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
FireShock Сахават ЮсифовОбычно делают базовые клендари + дают возможность ввести пользовательские клендари (на основе базовых или независимые). Работник (ресурс) привязывается к этим календарям (календари могут иметь приоритеты по пересечению).

По такому же примерно типу?

Задавать базовый не имеет смысла, так как у каждого сотрудника свое расписание (один ночами, другой сутки/трое и т.п.)

Надо разделить:
Работник_ИД
Календарь_ИД
...
Рейтинг: 0 / 0
21.06.2007, 16:52
    #34611617
FireShock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
Сахават ЮсифовНадо разделить:
Работник_ИД
Календарь_ИД
Ага.

А если работник заболел, то создать приоритетный календарь больничного времени и так же привязать к работнику?
...
Рейтинг: 0 / 0
21.06.2007, 16:56
    #34611638
Сахават Юсифов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание работы сотрудников
FireShock Сахават ЮсифовНадо разделить:
Работник_ИД
Календарь_ИД
Ага.

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


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