Задать вопрос
@Antigo_ptz

Как в БД подставлять старые значения справочников?

Приветствую!
Допустим, есть у меня в БД сущность worker (работник) и institution (учебное заведение). У каждого работника есть запись об учебном заведении, в котором он учился, т.е. связь между таблицами один ко многим.
Допустим когда-то учебное заведение называлось КГПУ и было выбрано у некоторых работников. Затем учебное заведение переименовали в КГПА. Вопрос в том, каким образом мне в старых записях сделать так, чтобы там хранилось старое название учебного заведения (т.е. КГПУ)? Какие есть у кого мысли? Ну, а у новых работников, естественно, выбираются новые значения.
  • Вопрос задан
  • 206 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
AndyKorg
@AndyKorg
Кнопконажиматель и припоерасплавлятель
Можно вот так
876cb10617f7471d9c4facdcad318a9e.JPG
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
Для начала между работником и учебным заведением связь многие-ко-многим.
Во-вторых, с чего это для новых работников выбираются только новые значения? Можно быть одновременно новым работником и закончить лет *дцать назад именно бывшее тогда учебное заведение. Выбирать можно из всего списка, либо, что лучше, хранить для учебного заведения год открытия и год закрытия (default null) и выбирать подходящие по годам обучения.
Если сохраняете ещё и даты обучения - то важно учесть, что учебное заведение может быть закрыто в любой момент между поступлением и выпуском студента. Поступил в одно заведение, выпустился из другого - запросто.

Если нет особых требований к поиску учебных заведений, то достаточно хранить год закрытия (default null) и ссылку на новую форму после реорганизации, если есть (поэтому тоже default null).
Для вашего примера будет КГПА например с edu_id = 105, reorg_to_id null и КГПУ со своим edu_id, датой закрытия и reorg_to_id = 105
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы