Что такое «стандартные имена» для моделей денормализации? - PullRequest
0 голосов
/ 14 апреля 2011

Мне интересно знать стандартные имена двух шаблонов проектирования баз данных, или могут быть «проблемы», если вы пуристы:

Как бы вы назвали эти ситуации / денормализации?Я использую «зеркальные атрибуты» и «блуждающий внешний ключ» для себя, но я уверен, что меня никто не поймет :).В любом случае ситуации просты:

1) у нас есть две сущности в отношениях «родитель-потомок», а в дочерней сущности есть не только атрибут внешнего ключа, но также некоторые другие «резервные» атрибуты родительской сущности.Это может быть ситуация, когда у вас есть не только streetId в объекте адреса, но также streetName для поддержки случая, когда улица отсутствует в вашем списке улиц (или что чаще всего используется для устаревших данных).

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

1 Ответ

1 голос
/ 14 апреля 2011

1) В нормализованной базе данных столбцы должны зависеть от ключа, всего ключа и ничего, кроме ключа. (Так помогите мне, Кодд.) Вы, конечно, можете денормализовать определенные столбцы для эффективности, но тогда вы дублируете данные в своей базе данных. Эти дублированные данные могут быть не синхронизированы.

2) Если я правильно понимаю, что вы говорите, первый столбец вашего «внешнего ключа» определяет, какая таблица, а второй столбец - это фактический ключ, который определяет строку в этой таблице. Я тоже это видел. Вероятно, это нормально для таблиц типов доменов (тарифы страховых групп 1, тарифы страховых групп 2 и т. Д.), Но указывает на своего рода множественное наследование при использовании с таблицами данных. Не видя конкретного экземпляра, я бы сказал, что множественное наследование может быть переопределено с помощью базовой таблицы и одной или нескольких дополнительных таблиц, расширяющих базовую таблицу.

...