|
|
|
Тупик. Расписание, поиск решения.
|
|||
|---|---|---|---|
|
#18+
Уважаемые ГУРУ, прошу Вашего совета. Совершенно зашел в тупик. Поставлена вроде бы простая задача: сотрудники работают по определенным дням недели, а эти дни недели приходятся на различные числа в каждом из месяцев. Вот и не знаю как правильно хранить данные и как привязывать дни к числам. 1 вариант. Сотрудники => рабочие дни (пн, вт,ср и тд. тип бул) и при запросе проверять каким числом месяца является этот день недели. 2 вариант: Сотрудник -> вычислить каким числом является день недели, например пон. и хранить уже эту дату и выводить уже дату. В дальнейшем будет добавлено рабочее время, с точностью до минуты. Спасибо за ответ и внимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2013, 20:22 |
|
||
|
Тупик. Расписание, поиск решения.
|
|||
|---|---|---|---|
|
#18+
Проще всего решить эту задачу материализовав в виде таблицы календарь. Это слегка раздует базу, зато даст громадную гибкость (даст возможность вводить не только дни недели, но и праздники и т.п.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2013, 21:00 |
|
||
|
Тупик. Расписание, поиск решения.
|
|||
|---|---|---|---|
|
#18+
А чё тут думать? Добавляешь базу 365 строк на каждого сотрудника в год. Строка будет иметь: дату, ID сотрудника, ID дня недели, время прихода и ухода. И все. Это тебе даст и возможность отлова всех прогульщиков и всех трудоголиков, вплоть до точности с которой ты будешь фиксировать время. Можно конечно еще добавить в каждую строку по флагу "выходной, праздник, рабочий_день", предполагаемое время начала/конца смены, но это только слегка поможет для отчетных задач. Может еще быть полезным если у тебя каждый сотрудник работает по своему уникально-плавающему графику. Но для большинства контор такая гибкость не нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2013, 21:51 |
|
||
|
Тупик. Расписание, поиск решения.
|
|||
|---|---|---|---|
|
#18+
Благодарю Вас за ответ. Позвольте уточнить; Таблица будет примерно такой вид: Имя график: дата, id сотрудника id дня недели и тд. и таких строк в таблице будет 365 а каждом году + для каждого сотрудника свои 365 строк в этой таблице. Какое ограничение существует на кол-во строк в таблице? Не раздуется ли база, если сотрудников к примеру 300 штук? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 09:05 |
|
||
|
Тупик. Расписание, поиск решения.
|
|||
|---|---|---|---|
|
#18+
pal2Таблица будет примерно такой вид: Имя график: дата, id сотрудника id дня недели и тд. и таких строк в таблице будет 365 а каждом году + для каждого сотрудника свои 365 строк в этой таблице. Какое ограничение существует на кол-во строк в таблице? Не раздуется ли база, если сотрудников к примеру 300 штук?:-) Хватит даже для всех жителей земли. Нужно подробные данные о задаче. Для самого графика (расписания) нужно именно расписание, т.е. некий набор правил. Если правило сформулировано так: "сотрудники работают по определенным дням недели", то нужно сделать таблицу: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. Всякие запросы, статистики и прочее делаются со второй таблицей, а её заполнение и управление графиком - с первой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 09:56 |
|
||
|
Тупик. Расписание, поиск решения.
|
|||
|---|---|---|---|
|
#18+
С простым расписанием по дням недели понятно, но тут даты, время, праздники и тд Сотрудники работают в произвольное время по дням недели, сотрудников > 300, у каждого сотрудника есть ученик (школа) и ученик так же занимается у преподавателя в это время. Задача построить табель и расписание. Ничего подобного в сети не встретил. Спасибо за оперативный ответ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 14:23 |
|
||
|
Тупик. Расписание, поиск решения.
|
|||
|---|---|---|---|
|
#18+
pal2Ничего подобного в сети не встретил.И не встретишь. А если и встретишь, то не применишь. Учебные расписания это штука очень сильно завязанная на желания левой-задней ноги большого начальника которому данные школы подчиняются напрямую. Но общие правила построения таких расписаний достаточно просты: 1) У тебя будет какой-то базовый шаблон для учителей типа: (учитель, предмет, количество часов в неделю). К этому можно добавлять кучу разных модификаторов типа "популярность", "стаж", "сколько денег хочет за лекцию", "может учить утром или вечером" и тд. 2) Аналогичный базовый шаблон по ученикам/классам/группам. 3) Ну и наконец шаблон календаря - 365 строк с упоминанием "сегодня учим с утра, до вечера", "сегодня гуляем потому что воскресенье", "сегодня гуляем потому что директор животом мается". 4) Еще может быть список учебных комнат-лабораторий с указаниями какие предметы там можно вести, когда, сколько учеников одновременно и тд В общем, по всем четырем пунктам количество и смысл дополнительных параметров может быть очень и очень разнообразным. Собственно говоря я эту задачу сам решал раз десять в разных школах, вузах и репетиторских конторах. И каждый раз набор критериев был различным. Поэтому-то готовых решений в сети и не бывает. Очень уж они специфичны всегда. Ну а после того как у тебя уже будут на руках утвержденные списки преподов, учеников и тд, то берешь и решаешь на их основе почти классическую задачу о рюкзаке. У тебя будет рюкзаки (классы) в которые надо впихнуть заранее известное количество предметов (учеников) и на них накладываешь учителей. Тут уже будут варианты - либо сначала распределяешь учеников, потом на них накладываешь учителей, либо наоборот. В школе удобнее с учеников начинать, а в репетиторских конторах с учителей. И каждый отдельный урок пишешь отдельной строкой в итоговую таблицу. В общем, все довольно просто. Но повозиться придется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2013, 01:39 |
|
||
|
Тупик. Расписание, поиск решения.
|
|||
|---|---|---|---|
|
#18+
pal2С простым расписанием по дням недели понятно, но тут даты, время, праздники и тд Сотрудники работают в произвольное время по дням недели, сотрудников > 300, у каждого сотрудника есть ученик (школа) и ученик так же занимается у преподавателя в это время. Задача построить табель и расписание. Ничего подобного в сети не встретил. Спасибо за оперативный ответ! Как тут советовали день недели хранить не надо. Надо хранить дату и время работы. Т.е. "Иванов И.И." работает с "2013-11-27 9:00" по "2013-11-27 13:00" с "2013-11-27 14:00" по "2013-11-27 18:00" с "2013-11-28 9:00" по "2013-11-28 13:00" с "2013-11-28 14:00" по "2013-11-28 18:00" И т.д. Кроме того могут быть переработки, т.е. с "2013-11-29 14:00" по "2013-11-29 22:00" Или сокращенный день с "2013-12-02 14:00" по "2012-12-02 16:00" Т.е., записи будут только по рабочим дням. Когда он работал или будет точно работать. Еще нужен календарь выходных и праздничных дней. Т.к. из-за праздников рабочие дни могут переноситься на выходные. Ну и шаблоны графиков, здесь уже можно делать по неделям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2013, 11:08 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38477316&tid=1541056]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 276ms |
| total: | 376ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...