Отправляет email-рассылки с помощью сервиса Sendsay

[TC] Работа с MYSQL

Здравствуйте, industry.

Есть задача, составление рассписания для университета.
Предполагается, что вс инфа должна храниться в таблицах бд MYSQL.
В связи с этим возникают вопросы.
Делов том, что групп для которых содздается рассписание много.
И если допустим заполнять таблицу примерно так:
день недели, перечисление предметов, указание фамилии преподавателя и
пр. то получается, что для например 100 групп приходится множество раз
повторять например понедельник.
То же самое с фамилиями преподавателей, тоже самое с названиями
предметов.
Существует ли возможность как-то всё это рационализировать?
например создать таблици с перечислениями всех предметов всех фамилий
преподавателей всех дней и саму таблицу рассписание создать как-то
ввиде каких-нибудь ссылок или может быть возможно использовать
какие-то связки таблиц.
Или может быть всё это можно реализовать как-нибудь совсем иначе?
Буду очень благодарен за информацию на этот счет!

Ответить   Mon, 8 Aug 2011 09:22:08 +0600 (#1787596)

 

Ответы:

Приветствую всех.

Возникшие у вас вопросы не относятся напрямую к mysql, а относятся к понятию
"реляционная база данных" и языку запросов SQL.
Поэтому имеет смысл почитать соответствующую литературу, прежде чем приступать
к проектированию баз данных.

Этот процесс называется нормализацией базы данных. Если хотите познакомиться
поближе, то начните с google: "нормальная форма".

Сами SQL-таблицы связей не хранят, то есть связывание таблиц происходит непосредственно
в SQL-запросе (например, SELECT и т.п.).
В языке SQL (который поддерживает mysql) для связывания таблиц используется ключевое
слово JOIN:
http://mysql.ru/docs/man/JOIN.html

Дни недели, список предметов, преподаватели, группы студентов -- это четыре разных
таблицы, которые вы будете связывать с таблицей "расписание" в запросе SELECT.

Успехов. Анатолий.

Ответить   "i_chay" Mon, 8 Aug 2011 08:23:20 +0400 (#1787626)

 

Vande omentaina, Константин!

К> Или может быть всё это можно
реализовать как-нибудь совсем иначе?

Хорошая и нетривиальная задачка.
Всё, что будет далее мною написано, мною не тестировалось и не оптимизировалось,
поэтому никаких гарантий я не даю.
Выглядеть это должно примерно так:
1. Таблица преподов: айди, ФИО, телефон, может, что-то ещё.
2. Таблица предметов: Айди предмета, айди препода, название предмета;
3. Таблица групп: айди группы, название (номер) группы, возможно, курс и специальность;
4. Таблица пар: айди пары, время начала, время окончания.
5. Собственно таблица расписания: айди, день недели (от 1 до 7 или от 0 до 6,
как удобнее), айди группы, айди пары, айди предмета.

Ответить   Mon, 8 Aug 2011 15:46:29 +0300 (#1788292)