Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Каква е разликата между първичен ключ и сурогатен ключ?

Първичният ключ е уникален ключ във вашата таблица, който избирате и който най-добре уникално идентифицира запис в таблицата. Всички таблици трябва да имат първичен ключ, защото ако някога трябва да актуализирате или изтриете запис, трябва да знаете как да го идентифицирате уникално.

Сурогатен ключ е изкуствено генериран ключ. Те са полезни, когато вашите записи по същество нямат естествен ключ (като Person таблица, тъй като е възможно двама души, родени на една и съща дата, да имат едно и също име, или записи в дневник, тъй като е възможно да се случат две събития, които носят едно и също времево клеймо). Най-често ще ги видите внедрени като цели числа в автоматично нарастващо поле или като GUID, които се генерират автоматично за всеки запис. Идентификационните номера почти винаги са сурогатни ключове.

За разлика от първичните ключове обаче не всички таблици се нуждаят от сурогатни ключове. Ако имате таблица, която изброява щатите в Америка, всъщност не се нуждаете от идентификационен номер за тях. Можете да използвате съкращението на държавата като първичен ключов код.

Основното предимство на сурогатния ключ е, че е лесно да се гарантира, че той е уникален. Основният недостатък е, че те нямат никакво значение. Няма значение, че „28“ е Уисконсин, например, но когато видите „WI“ в колоната „Щат“ на вашата таблица с адреси, знаете за кой щат говорите, без да е необходимо да търсите кой щат е кой във вашия щат таблица.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да редактирам таблица, за да активирам CASCADE DELETE?

  2. T-SQL:CTE с колони за идентичност

  3. Как мога да съкратя дата и час в SQL Server?

  4. Как да вмъкнете данни в SQL Server

  5. как да декларирам глобална променлива в SQL Server ..?