это нормально иметь "короткие" ссылки, чтобы перепрыгнуть через таблицы отношений? - PullRequest
1 голос
/ 18 апреля 2011

Извините за заголовок

У меня есть следующее отношение, коробка принадлежит слоту, который принадлежит стойке, которая принадлежит холодильнику.С другой стороны, в холодильниках есть много стоек, в которых есть много слотов, в которых есть один ящик.

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

Это плохо, и если да, то почему иметь внешний ключ к холодильнику в таблице ящиков?

Ответы [ 2 ]

2 голосов
/ 18 апреля 2011

Это может зависеть от того, как часто будет обновляться отношение.Если отношение может часто меняться, вам придется обновить связь в нескольких местах.Это также может немного усложнить задачу, потому что если вы меняете ее, вы должны быть уверены, что все вхождения также обновлены.

Однако, если значения не изменятся так часто, кажется, что это может ускорить ваши запросы.

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

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

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

...