Нарушают ли нормализацию данных две таблицы с одинаковым содержанием? - PullRequest
0 голосов
/ 03 июня 2019

[Предполагается, что между агентством и адресом существует связь один ко многим, и между агентством и адресом существует связь один ко многим.]

Учитывая следующую структуру таблицы:

enter image description here

Не хотите ли объединить две таблицы адресов и вместо использования внешнего ключа внутри каждой использовать таблицу связей? Как это: enter image description here

Они оба действительны для нормализации или только один?

1 Ответ

1 голос
/ 03 июня 2019

Зависит от того, что вы хотите сделать.

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

Конечно, у вас может быть столбец типа адреса для дифференциации, но тогда у вас есть более сложный запрос для оператора вставки.

Таким образом, хотя «адрес» является глобальной идеей, иногда легче выделить его по контексту.

Во-вторых, ваши данные о клиентах обычно меняются гораздо больше, чем данные вашего агентства. В отношении хранения личных данных могут также существовать организационные и юридические требования, которые облегчают разделение этих данных.

например. в системе медицинской документации я хочу иметь возможность легко извлекать / ограничивать данные клиента и хранить данные о конфигурации или вводе в эксплуатацию отдельно.

Таким образом, во всех клиентских системах, которые я использовал, модель имеет тенденцию быть первой, которую вы описываете, а не второй.

...