Зачем рассматривать использование суррогатных ключей против Natural с ON UPDATE CASCADE?

Заявление об ограничении ответственности: это не тот же вопрос, что и по другим темам.


Один из недостатков, с которыми мы сталкиваемся при использовании Natural Keys, заключается в том, что если бизнес-логика изменяется и нам нужно изменить один ключ, нам нужно распространить это изменение на все связанные таблицы.

Однако, используя объявление ON UPDATE CASCADE, мы можем заставить СУБД распространять изменится для нас, когда мы изменим ключевое значение.

Я не понимаю: каковы недостатки этого подхода? Есть ли ситуация, когда использование ON UPDATE CASCADE может быть опасным для базы данных?

Потому что если нет, то если в какой-то ситуации единственной причиной использования суррогатных ключей является тот факт, что легче изменить бизнес-естественные ключи, тогда следует использовать ON UPDATE CASCADE вместо преобразования всех таблиц в суррогатные ключи.


person PedroD    schedule 11.12.2019    source источник


Ответы (1)


Преимущества суррогатов ..

  1. Если вы используете REST, тогда требуется концепция идентификатора ресурса. Использование части ресурса в качестве идентификатора ресурса может быть обременительным. В данном случае суррогатный ключ на самом деле не является суррогатом, поскольку он становится идентификатором реального ресурса, но это одна из причин использовать шаблон суррогатного ключа.

  2. Просто с суррогатом проще управлять многими инструментами ORM. Хорошо это или плохо, но ООП требует, чтобы концепция идентичности оставалась отдельной от ценности. Во многом это похоже на пункт 1.

  3. Если вы измените ключевые атрибуты, вы можете изменить только одну таблицу. С другой стороны, суррогаты не могут превратить естественно составной ключ в простой, если вы хотите сохранить ссылочную целостность. Например, Document (UserId, FolderId) ссылается на папку (UserId, Id), не позволяя пользователю помещать свои документы в чужую папку, где просто Document (FolderId) ссылается на папку (Id). Но использование суррогата, по крайней мере, ограничивает обязательные радикальные изменения структурными решениями, а не просто тем, кто выбирает один из нескольких ключей-кандидатов.

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

person Samuel Danielson    schedule 04.05.2020