Если в базе данных есть таблицы, содержащие один и тот же FK, должны ли они быть нормализованы?Должен ли я нормализовать наборы внешних ключей, используемых в нескольких таблицах?
Эти таблицы Дб вопрос:
user (
user_id int PK,
...
...
)
user_cat (
user_cat_id int PK,
user_id int FK,
effective_date date,
location_id FK, <-- dup
qualification_id FK, <-- dup
business_id FK <-- dup
)
user_admin_cat (
admin_cat_id int PK,
user_id int FK,
effective_date date,
company_id FK,
location_id FK, <-- dup
qualification_id FK, <-- dup
business_id FK <-- dup
)
Вот что я рассмотрел делать, чтобы свести к минимуму дублирование:
user (
user_id int PK,
...
...
)
user_cat (
user_cat_id int PK,
user_id int FK,
effective_date date,
shared_id, FK <-- dup
)
user_admin_cat (
admin_cat_id int PK,
user_id int FK,
effective_date date,
company_id FK,
shared_id, FK <-- dup
)
shared_user_cat_fks (
shared_id int PK,
location_id FK,
qualification_id FK,
business_id FK
)
То, что я хотел бы узнать ответ на один или более из следующих вопросов:
(1) Если вы хотите использовать нормализационное решение, почему это лучше?
(2) Если бы вы не использовали нормализационное решение, что бы вы сделали? Почему это решение лучше?
(3) Если вы не будете использовать нормализационное решение, потому что есть дубликаты только в двух таблицах, сколько таблиц дубликатов должно быть до того, как вы что-нибудь сделаете? Какое решение вы бы выполнили? Почему это хорошее решение?
Благодарим вас за ответ Дмитрий. –