Мне интересно знать стандартные имена двух шаблонов проектирования баз данных, или могут быть «проблемы», если вы пуристы:
Как бы вы назвали эти ситуации / денормализации?Я использую «зеркальные атрибуты» и «блуждающий внешний ключ» для себя, но я уверен, что меня никто не поймет :).В любом случае ситуации просты:
1) у нас есть две сущности в отношениях «родитель-потомок», а в дочерней сущности есть не только атрибут внешнего ключа, но также некоторые другие «резервные» атрибуты родительской сущности.Это может быть ситуация, когда у вас есть не только streetId в объекте адреса, но также streetName для поддержки случая, когда улица отсутствует в вашем списке улиц (или что чаще всего используется для устаревших данных).
2)Дочерняя сущность содержит «внешний ключ», который состоит из двух полей: одно идентифицирует «родительскую таблицу», другое - «значение ключа в родительской таблице».Это означает, что сначала нужно выполнить интерпретацию, выполнить фильтрацию, мы знаем, к какой таблице следует присоединиться.Конечно, непротиворечивость этих отношений не поддерживается на уровне БД, но это все еще своего рода «родительско-дочерние отношения», которые я иногда вижу на практике.