Русский
Русский
English
Статистика
Реклама

Recovery mode Внешний ключ должен вести не на сущность, а на актуальную версию этой сущности

Допустим, вы отвечаете за благоустройство улиц. Фирма "Пётр и сыновья" подписала с вами договор на то, чтобы покрасить забор по адресу: г. Куйбышев, Староколпакский перулок, 1.
При этом, на уровне базы данных договор будет связан с адресом и с компанией.

Спустя пять лет, Пётр почил. Сыновья Петра продолжают его династию (покраску заборов).

Теперь фирма, с которой был заключён контракт, называется "Борис и Денис". При этом, город Куйбышев начал называться Самара. Теперь, если вы станете искать документ, чтобы получить налоговый вычет, вы вряд ли его найдёте - ваша программа отображает, что фирма "Борис и Денис" по вашему поручению покрасила забор в городе Самаре.

Чтобы избежать подобных казусов, надо хранить в таблице все версии объектов, в том числе устаревшие. В части адресной системы, в этом вам поможет ФИАС, он так и делает (там у каждой записи об адресном объекте хранится идентификатор AOID - это идентификатор конкретной версии объекта, и идентификатор AOGUID - это идентификатор адресного объекта в целом, который не меняется, если объект был переименовал или переподчинён. Аналогичная система, полагаю, существует не только для адресов, но и для свойств когда-либо зарегистрированных юридических лиц.

Foreign Key на языке жестов, изображение с сайта corchaosis.ru

Внешние ключи (Foreign Key) в вашей базе данных должны из документов вести не на объект, а на конкретную, актуальную на момент их создания, версию каждого объекта.

В противном случае ваша банковская система будет назначать клиентам более высокий процент, на основании того что они не живут по адресу, на который указывает штамп в паспорте о прописке. А реально это та же самая улица, она раньше называлась по другому. И всё такое.

Источник: habr.com
К списку статей
Опубликовано: 25.01.2021 14:08:49
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Информационная безопасность

Анализ и проектирование систем

Sql

Администрирование баз данных

Геоинформационные сервисы

Внешний ключ

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru