За последние 24 часа нас посетили 17592 программиста и 1623 робота. Сейчас ищет 1661 программист ...

когда данные повроряются ...

Тема в разделе "PHP и базы данных", создана пользователем Koc, 12 июл 2008.

  1. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Доброго времени суток. Проектирую некую БД.
    Как хотел делать таблицы: область, город, вуз, факультет, кафедра,преподаватель.
    Казалось бы, все эти таблицы логично связываются между собой. Однако, в процессе проектирования было обнаружено, что некоторые факультеты и тем более кафедры будут повторяться. Ну тоесть даже в одном городе есть вузы, у которых факультеты могут называться одинаково. Да и кафедра "экономика и менеджмент" есть в каждом третьем вузе.

    Встает вопрос: а не выделить ли факультеты и кафедры в отдельные таблицы? Да, сейчас так и сделано, только не так.

    [​IMG]
     
  2. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Названия факультетов одни, а коды разные (вроде как :)). В учебных заведениях обычно используется порядок "id факультет" для документов: "01556 Менеджмент и рекламы".

    P.S. Таблицу города от области отделять не имеет смысла, ИМХО.
     
  3. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    отделять или нет область и город? даже не знаю. В Днепропетровске одни ВУЗы, в Днепродзержинске другие, а в Кривом Рогу третьи). А область одна и та же.

    по сабжу: для факультетов постоянный ID? он как-то документирован?

    просто может сделать таблицу со всеми возможными факультетами и кафедрами, а в вышеупомянутые таблицы, что в 1 посте тулить только их ИД?
     
  4. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Э, да, я чё-то ступил с городами и облостями. Там тоже есть жизнь. :)

    Да, id должен быть постоянный иначе договор со студентом пришлось бы переписывать (в гос. вузах тоже ведь договора) постоянно. Я не знаю, может эти id какие-то стандартные по стране или регионам, но вероятнее всего, они выдаются гос. комиссиями при аккредитации учебного заведения.

    Хм, а может тебе лучше собирать работников?

    Таблица городов:
    id название

    Таблица факультетов:
    id название

    Таблица кафед (кафедрей? :):
    id название id_факультета

    Таблица работничков:
    id имя должность id_кажедры id_факультета

    Если это декан факультета, то указывать id_кафедры, а если зав. кафедры, то указывать id_кафедры.

    Таблица вузов:
    id название id_города

    И таблица связей между вузами и работничков:
    id_вуза id_работничка

    P.S. Хотя, напрасно я в эту тему отписался. Сложно тут. :)
     
  5. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    где б узнать все эти ID? Но это не самая важная проблема. Имхо если я буду делать все под своими ID, то хуже не будет.

    [sql]сборище факультетов
    ид, название

    сборище кафедр
    ид, название

    города:
    ид, ид_обл, название

    вузы:
    ид, ид_город, всякая инфа

    факультеты:
    ид, ид_вуза, ид_факультета_из_сборища_факультетов, всякая инфа (тот же декан)

    кафедры
    ид, ид_факультета, ид_кафедры_из_сборища_кафедр, всякая инфа (хотя бы зав каф)[/sql]

    Что мы получаем? пару лишних запросов. Более сложную логику да и вообще структуру БД. Если с первым справится кеширование, то со 2 буду пыхтеть я. Так же мы избавимся от дублирующихся записей, вернее заменим "экономика и менеджмент" на какую-нить цифру, например на 120.

    было: [​IMG]
    стало: [​IMG]

    вопрос к знатокам: как лучше?
     
  6. Anonymous

    Anonymous Guest

    Безусловно, второе.

    Маленький пример... представь, что «Экономику и менеджмент» у тебя переименовали... в «Бизнес и управление». В скольких местах тебе придется менять это? Или - опечатался ты в написании. У двух-трех вузов. И строишь статистику.... а она оп - и не сходится, потому что ты привязку делаешь по строковому названию, а не по числовому ид. Примеров монжно привести еще море, почему нормализация базы спасает от головной боли. А самое главное: Нормализованную базу по необходимости ДЕнормализовать — легко, а вот наоборот.... только вручную. Так-то!
     
  7. Anonymous

    Anonymous Guest

    угу, в крайнем случае, ты потом сможешь просто добваить еще одну таблицу соответствий 1-к-1 твоих ID и тех, что по бумагам у вузов.
     
  8. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Горбунов Олег спасибо.

    Небольшой пример от меня: в одном из вузов факультет "Вычислительная Техника" переименовали на "Техническая Кибернетика". В остальных он по прежнему и называется ВТ. Что делаем? просто добавляем этот новый фак в таблицу сборище факультетов и меняем связь в табл. факультет.

    или даже просто поле.

    Зы: а в целом, как думаете, идея делать портал для студентов, абитуриентов и преподавателей не глупая? Кажется это заплеваная тема, да вот только таких "глобальных" и хороших проектов еще нет.
     
  9. xuanlu425

    xuanlu425 Активный пользователь

    С нами с:
    30 июл 2008
    Сообщения:
    1
    Симпатии:
    0
    xuanlu

    I support author's viewpoint, hoped that will have later also more better articles, wow gold will read the first time, thank!