Действительно ли необходимо определить столбец как внешний ключ во всех таблицах, где он используется - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть пользователи таблица, которая имеет user_id в качестве первичного ключа и используется в других 40-50 таблицах (приблизительно.).Необходимо ли определять user_id столбец как внешний ключ в каждой таблице, где используется user_id ?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Это зависит.RI / FK были введены в Oracle в v7, поэтому базы данных наиболее определенно существовали без них, а некоторые все еще существуют.Но обычно их определяют и включают, поскольку вы в основном получаете эту проверку «бесплатно».

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

Однако я еще раз подчеркиваю, что FK /РИ в целом хороши, и я бы перевернул ваш вопрос и сказал: «Когда мне следует подумать о том, чтобы у меня не было ФК?».

По моему опыту, вы чаще всего найдете эти пропуски из-за лениразработчики.

0 голосов
/ 24 декабря 2018

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

...