Допустим, вы отвечаете за благоустройство улиц. Фирма "Пётр и сыновья" подписала с вами договор на то, чтобы покрасить забор по адресу: г. Куйбышев, Староколпакский перулок, 1. При этом, на уровне базы данных договор будет связан с адресом и с компанией.Спустя пять лет, Пётр почил. Сыновья Петра продолжают его династию (покраску заборов).Теперь фирма, с которой был заключён контракт, называется "Борис и Денис". При этом, город Куйбышев начал называться Самара. Теперь, если вы станете искать документ, чтобы получить налоговый вычет, вы вряд ли его найдёте - ваша программа отображает, что фирма "Борис и Денис" по вашему поручению покрасила забор в городе Самаре.Чтобы избежать подобных казусов, надо хранить в таблице все версии объектов, в том числе устаревшие. В части адресной системы, в этом вам поможет ФИАС, он так и делает (там у каждой записи об адресном объекте хранится идентификатор AOID - это идентификатор конкретной версии объекта, и идентификатор AOGUID - это идентификатор адресного объекта в целом, который не меняется, если объект был переименовал или переподчинён. Аналогичная система, полагаю, существует не только для адресов, но и для свойств когда-либо зарегистрированных юридических лиц.
Foreign Key на языке жестов, изображение с сайта corchaosis.ru Внешние ключи (Foreign Key) в вашей базе данных должны из документов вести не на объект, а на конкретную, актуальную на момент их создания, версию каждого объекта.В противном случае ваша банковская система будет назначать клиентам более высокий процент, на основании того что они не живут по адресу, на который указывает штамп в паспорте о прописке. А реально это та же самая улица, она раньше называлась по другому. И всё такое.
=========== Источник:
habr.com ===========
Похожие новости:
- [Программирование, Анализ и проектирование систем, Проектирование и рефакторинг, ООП] Symfony и Гексагональная архитектура (перевод)
- [Информационная безопасность, Мессенджеры] WSJ: пользователи в Гонконге переходят на ICQ из-за новой политики WhatsApp
- [Анализ и проектирование систем, Проектирование и рефакторинг, IT-стандарты, Разработка робототехники, Дизайн] Всё как в жизни: законы проектирования космических кораблей (перевод)
- [Информационная безопасность, Программирование, Java, GitHub, Софт] Architectural approaches to authorization in server applications: Activity-Based Access Control Framework (перевод)
- [Анализ и проектирование систем, IT-инфраструктура, Nginx, Mesh-сети, DevOps] Зачем нужен обратный прокси сервер в 5 актах
- [Информационная безопасность, Софт] ИБ-исследователь создал сайт для публикации данных об уязвимостях в зловредах
- [Системное администрирование, Серверное администрирование, Администрирование баз данных, Хранение данных] Понимание LDAP-протокола, иерархии данных и компонентов записей (перевод)
- [Информационная безопасность, Законодательство в IT, IT-компании] Центр кибербезопасности России предупредил о возможных кибератаках из США
- [Информационная безопасность, Реверс-инжиниринг, CTF] Hack The Box. Прохождение Compromised. RCE LiteCart и бэкдор pam_unix
- [Системное администрирование, Серверное администрирование, 1С] Чек-лист по настройке инфраструктуры для повышения скорости работы 1С с MS SQL (особенно важно в облаках)
Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_analiz_i_proektirovanie_sistem (Анализ и проектирование систем), #_sql, #_administrirovanie_baz_dannyh (Администрирование баз данных), #_geoinformatsionnye_servisy (Геоинформационные сервисы), #_vneshnij_kljuch (внешний ключ), #_informatsionnaja_bezopasnost (
Информационная безопасность
), #_analiz_i_proektirovanie_sistem (
Анализ и проектирование систем
), #_sql, #_administrirovanie_baz_dannyh (
Администрирование баз данных
), #_geoinformatsionnye_servisy (
Геоинформационные сервисы
)
|