У мене є кілька таблиць, де записи можна однозначно ідентифікувати з кількома широкими сферами бізнесу. Раніше я використовував ці поля як ПК, маючи на увазі ці переваги:
- Простота; немає сторонніх полів і лише один індекс
- Кластеризація дозволяє швидко поєднувати з'єднання та фільтри на основі діапазону
Однак я чув випадок, створений для створення синтетичного IDENTITY INT
ПК, і замість цього виконувати діловий ключ з окремим UNIQUE
обмеженням. Перевага полягає в тому, що вузький ПК створює значно менші вторинні показники.
Якщо таблиця не має індексів, окрім PK, я не бачу жодної причини надати перевагу другому підходу, хоча у великій таблиці, мабуть, найкраще припустити, що індекси можуть бути необхідними в майбутньому, а тому надають перевагу вузькому синтетичному ПК . Чи пропускаю я якісь міркування?
Між іншим, я не заперечую проти використання синтетичних ключів у сховищах даних, мене просто цікавить, коли використовувати єдиний широкий ПК та коли використовувати вузьку ПК та широку Великобританію.