Доброго времени суток. Проектирую некую БД. Как хотел делать таблицы: область, город, вуз, факультет, кафедра,преподаватель. Казалось бы, все эти таблицы логично связываются между собой. Однако, в процессе проектирования было обнаружено, что некоторые факультеты и тем более кафедры будут повторяться. Ну тоесть даже в одном городе есть вузы, у которых факультеты могут называться одинаково. Да и кафедра "экономика и менеджмент" есть в каждом третьем вузе. Встает вопрос: а не выделить ли факультеты и кафедры в отдельные таблицы? Да, сейчас так и сделано, только не так.
Названия факультетов одни, а коды разные (вроде как ). В учебных заведениях обычно используется порядок "id факультет" для документов: "01556 Менеджмент и рекламы". P.S. Таблицу города от области отделять не имеет смысла, ИМХО.
отделять или нет область и город? даже не знаю. В Днепропетровске одни ВУЗы, в Днепродзержинске другие, а в Кривом Рогу третьи). А область одна и та же. по сабжу: для факультетов постоянный ID? он как-то документирован? просто может сделать таблицу со всеми возможными факультетами и кафедрами, а в вышеупомянутые таблицы, что в 1 посте тулить только их ИД?
Э, да, я чё-то ступил с городами и облостями. Там тоже есть жизнь. Да, id должен быть постоянный иначе договор со студентом пришлось бы переписывать (в гос. вузах тоже ведь договора) постоянно. Я не знаю, может эти id какие-то стандартные по стране или регионам, но вероятнее всего, они выдаются гос. комиссиями при аккредитации учебного заведения. Хм, а может тебе лучше собирать работников? Таблица городов: id название Таблица факультетов: id название Таблица кафед (кафедрей? : id название id_факультета Таблица работничков: id имя должность id_кажедры id_факультета Если это декан факультета, то указывать id_кафедры, а если зав. кафедры, то указывать id_кафедры. Таблица вузов: id название id_города И таблица связей между вузами и работничков: id_вуза id_работничка P.S. Хотя, напрасно я в эту тему отписался. Сложно тут.
где б узнать все эти ID? Но это не самая важная проблема. Имхо если я буду делать все под своими ID, то хуже не будет. [sql]сборище факультетов ид, название сборище кафедр ид, название города: ид, ид_обл, название вузы: ид, ид_город, всякая инфа факультеты: ид, ид_вуза, ид_факультета_из_сборища_факультетов, всякая инфа (тот же декан) кафедры ид, ид_факультета, ид_кафедры_из_сборища_кафедр, всякая инфа (хотя бы зав каф)[/sql] Что мы получаем? пару лишних запросов. Более сложную логику да и вообще структуру БД. Если с первым справится кеширование, то со 2 буду пыхтеть я. Так же мы избавимся от дублирующихся записей, вернее заменим "экономика и менеджмент" на какую-нить цифру, например на 120. было: стало: вопрос к знатокам: как лучше?
Безусловно, второе. Маленький пример... представь, что «Экономику и менеджмент» у тебя переименовали... в «Бизнес и управление». В скольких местах тебе придется менять это? Или - опечатался ты в написании. У двух-трех вузов. И строишь статистику.... а она оп - и не сходится, потому что ты привязку делаешь по строковому названию, а не по числовому ид. Примеров монжно привести еще море, почему нормализация базы спасает от головной боли. А самое главное: Нормализованную базу по необходимости ДЕнормализовать — легко, а вот наоборот.... только вручную. Так-то!
угу, в крайнем случае, ты потом сможешь просто добваить еще одну таблицу соответствий 1-к-1 твоих ID и тех, что по бумагам у вузов.
Горбунов Олег спасибо. Небольшой пример от меня: в одном из вузов факультет "Вычислительная Техника" переименовали на "Техническая Кибернетика". В остальных он по прежнему и называется ВТ. Что делаем? просто добавляем этот новый фак в таблицу сборище факультетов и меняем связь в табл. факультет. или даже просто поле. Зы: а в целом, как думаете, идея делать портал для студентов, абитуриентов и преподавателей не глупая? Кажется это заплеваная тема, да вот только таких "глобальных" и хороших проектов еще нет.
xuanlu I support author's viewpoint, hoped that will have later also more better articles, wow gold will read the first time, thank!