| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
| препода и группу запиши лучше в поля отдельные, всяко удобнее будет |
| Автор: Mal Hack 28.5.2005, 22:24 |
| окей. отлично. SET'ом их сделаю. +... |
| Автор: Irokez 28.5.2005, 22:27 |
| я бы отделил таблицу пар |
| Автор: Mal Hack 28.5.2005, 22:47 | ||
нет смысла. Сьтатично с 1 по 7. |
| Автор: Irokez 28.5.2005, 22:53 | ||
правда конечно, но мало ли, если вдруг пары будут добавляться... или к ним перемены да и чем больше таблиц, тем преподаватели лучше думают о работе да и запрос твой упростится |
| Автор: Mal Hack 28.5.2005, 22:57 | ||||||
Дописываем в множество.
Плеват на преподов. Главное чтобы все было оптимально. Доказать если что всегда можно.
Дуумаю вряд ли.. Так пишем WHERE `pars` IN ( '1' ,'2') а в твоем случае надо внешнюю связь делать. |
| Автор: Irokez 28.5.2005, 22:59 |
| мое дело предложить |