Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Расписание распределения машинного времени.


Автор: Mal Hack 27.5.2005, 21:50
Пижу диполм. Задание - написать приложение для учета машинного времиени в залах ВЦ в техникуме по парам.
Ничего сложного нет. Но есть один вопрос на оптимальность.
Итак.
Расписание недельное.
Есть три master таблицы.
Первая содержит общие данные о расписании.
ID | День начала недели | Выходные | Статус (утверждено или нет).
Вторая таблица содержит заявки.
ID | Дата | Преподаватель | Зал | Группа | Тип занятия | Пары, которые препод хочет вести
Третья таблица само расиписание, уже утвержденное. Которое грубо говоря надо будеот отображать в таблице, где стобцы - пары, строки - дни недели - это для одного преподавателя. А для администратора - общее расписание на день, где столбцы - также пары, а строки - залы ВЦ.
ДЫк вот. Третью таблицу я вижу так:
ID расписания из табл. 1 | Дата | Зал | строка: "Группа::::Преподаватель" (*) - 7 раз, на 7 пар, т.е.
ID расписания из табл. 1 | Дата | Зал | 1 пара | 2 | 3 | 4 | 5 | 6 | 7

В скрипте для ОБЩЕГО расписания - все просто. При вывод парсим вот эту строку (*) и выводим инфу.
НО если нам надо посмотреть расписание одного преподавателя. Мы должны сделать запрос:
WHERE `data` = '.....' AND... А тут написать условие, по которому брались только те записи, где в записях столбцов 1-7 пар есть: "::::ID нужного преподавателя". 7 AND'ов мне кажутся не оптимальным решением.

Хотел бы выслушать предложения по оптимизации или изменению структуры таблицы.

Работаю на PHP4 & MySQL 4.0.

Автор: oxygen 28.5.2005, 22:16
препода и группу запиши лучше в поля отдельные, всяко удобнее будет smile

Автор: Mal Hack 28.5.2005, 22:24
окей. отлично. SET'ом их сделаю. +...

Автор: Irokez 28.5.2005, 22:27
я бы отделил таблицу пар

Автор: Mal Hack 28.5.2005, 22:47
Цитата(Irokez @ 28.5.2005, 23:27)
я бы отделил таблицу пар

нет смысла. Сьтатично с 1 по 7.

Автор: Irokez 28.5.2005, 22:53
Цитата(Mal @ 28.5.2005, 22:47)
нет смысла. Сьтатично с 1 по 7.

правда конечно, но мало ли, если вдруг пары будут добавляться... или к ним перемены
да и чем больше таблиц, тем преподаватели лучше думают о работе smile
да и запрос твой упростится

Автор: Mal Hack 28.5.2005, 22:57
Цитата(Irokez @ 28.5.2005, 23:53)
правда конечно, но мало ли, если вдруг пары будут добавляться...

Дописываем в множество.

Цитата(Irokez @ 28.5.2005, 23:53)
да и чем больше таблиц, тем преподаватели лучше думают о работе smile

Плеват на преподов. Главное чтобы все было оптимально. Доказать если что всегда можно.

Цитата(Irokez @ 28.5.2005, 23:53)
да и запрос твой упростится

Дуумаю вряд ли.. Так пишем WHERE `pars` IN ( '1' ,'2') а в твоем случае надо внешнюю связь делать.

Автор: Irokez 28.5.2005, 22:59
мое дело предложить smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)