powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Тупик. Расписание, поиск решения.
8 сообщений из 8, страница 1 из 1
Тупик. Расписание, поиск решения.
    #38477282
pal2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые ГУРУ, прошу Вашего совета. Совершенно зашел в тупик.
Поставлена вроде бы простая задача: сотрудники работают по определенным дням недели, а эти дни недели приходятся на различные числа в каждом из месяцев. Вот и не знаю как правильно хранить данные и как привязывать дни к числам.
1 вариант. Сотрудники => рабочие дни (пн, вт,ср и тд. тип бул) и при запросе проверять каким числом месяца является этот день недели.
2 вариант: Сотрудник -> вычислить каким числом является день недели, например пон. и хранить уже эту дату и выводить уже дату.
В дальнейшем будет добавлено рабочее время, с точностью до минуты.
Спасибо за ответ и внимание.
...
Рейтинг: 0 / 0
Тупик. Расписание, поиск решения.
    #38477316
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще всего решить эту задачу материализовав в виде таблицы календарь. Это слегка раздует базу, зато даст громадную гибкость (даст возможность вводить не только дни недели, но и праздники и т.п.)
...
Рейтинг: 0 / 0
Тупик. Расписание, поиск решения.
    #38477345
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чё тут думать? Добавляешь базу 365 строк на каждого сотрудника в год. Строка будет иметь: дату, ID сотрудника, ID дня недели, время прихода и ухода. И все.
Это тебе даст и возможность отлова всех прогульщиков и всех трудоголиков, вплоть до точности с которой ты будешь фиксировать время.

Можно конечно еще добавить в каждую строку по флагу "выходной, праздник, рабочий_день", предполагаемое время начала/конца смены, но это только слегка поможет для отчетных задач. Может еще быть полезным если у тебя каждый сотрудник работает по своему уникально-плавающему графику. Но для большинства контор такая гибкость не нужна.
...
Рейтинг: 0 / 0
Тупик. Расписание, поиск решения.
    #38477609
pal2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю Вас за ответ.
Позвольте уточнить;
Таблица будет примерно такой вид:
Имя график:
дата, id сотрудника id дня недели и тд.

и таких строк в таблице будет 365 а каждом году + для каждого сотрудника свои 365 строк в этой таблице. Какое ограничение существует на кол-во строк в таблице?
Не раздуется ли база, если сотрудников к примеру 300 штук?
...
Рейтинг: 0 / 0
Тупик. Расписание, поиск решения.
    #38477692
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pal2Таблица будет примерно такой вид:
Имя график:
дата, id сотрудника id дня недели и тд.

и таких строк в таблице будет 365 а каждом году + для каждого сотрудника свои 365 строк в этой таблице. Какое ограничение существует на кол-во строк в таблице?
Не раздуется ли база, если сотрудников к примеру 300 штук?:-)

Хватит даже для всех жителей земли.

Нужно подробные данные о задаче.

Для самого графика (расписания) нужно именно расписание, т.е. некий набор правил.

Если правило сформулировано так: "сотрудники работают по определенным дням недели", то нужно сделать таблицу:
Код: plaintext
1.
2.
3.
id сотрудника
день недели
рабочее время
Далее заполняется вышеупомянутая таблица:
Код: plaintext
1.
2.
дата, 
id сотрудника, 
рабочее время

Всякие запросы, статистики и прочее делаются со второй таблицей, а её заполнение и управление графиком - с первой
...
Рейтинг: 0 / 0
Тупик. Расписание, поиск решения.
    #38478254
pal2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С простым расписанием по дням недели понятно, но тут даты, время, праздники и тд
Сотрудники работают в произвольное время по дням недели, сотрудников > 300, у каждого сотрудника есть ученик (школа) и ученик так же занимается у преподавателя в это время.
Задача построить табель и расписание.
Ничего подобного в сети не встретил.
Спасибо за оперативный ответ!
...
Рейтинг: 0 / 0
Тупик. Расписание, поиск решения.
    #38479189
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pal2Ничего подобного в сети не встретил.И не встретишь. А если и встретишь, то не применишь.
Учебные расписания это штука очень сильно завязанная на желания левой-задней ноги большого начальника которому данные школы подчиняются напрямую.

Но общие правила построения таких расписаний достаточно просты:
1) У тебя будет какой-то базовый шаблон для учителей типа: (учитель, предмет, количество часов в неделю). К этому можно добавлять кучу разных модификаторов типа "популярность", "стаж", "сколько денег хочет за лекцию", "может учить утром или вечером" и тд.
2) Аналогичный базовый шаблон по ученикам/классам/группам.
3) Ну и наконец шаблон календаря - 365 строк с упоминанием "сегодня учим с утра, до вечера", "сегодня гуляем потому что воскресенье", "сегодня гуляем потому что директор животом мается".
4) Еще может быть список учебных комнат-лабораторий с указаниями какие предметы там можно вести, когда, сколько учеников одновременно и тд
В общем, по всем четырем пунктам количество и смысл дополнительных параметров может быть очень и очень разнообразным. Собственно говоря я эту задачу сам решал раз десять в разных школах, вузах и репетиторских конторах. И каждый раз набор критериев был различным. Поэтому-то готовых решений в сети и не бывает. Очень уж они специфичны всегда.

Ну а после того как у тебя уже будут на руках утвержденные списки преподов, учеников и тд, то берешь и решаешь на их основе почти классическую задачу о рюкзаке. У тебя будет рюкзаки (классы) в которые надо впихнуть заранее известное количество предметов (учеников) и на них накладываешь учителей. Тут уже будут варианты - либо сначала распределяешь учеников, потом на них накладываешь учителей, либо наоборот. В школе удобнее с учеников начинать, а в репетиторских конторах с учителей.
И каждый отдельный урок пишешь отдельной строкой в итоговую таблицу.

В общем, все довольно просто. Но повозиться придется.
...
Рейтинг: 0 / 0
Тупик. Расписание, поиск решения.
    #38479429
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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"

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


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