Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jaka jest różnica między kluczem podstawowym a kluczem zastępczym?

Klucz podstawowy to unikatowy klucz w Twojej tabeli, który najlepiej jednoznacznie identyfikuje rekord w tabeli. Wszystkie tabele powinny mieć klucz podstawowy, ponieważ jeśli kiedykolwiek będziesz musiał zaktualizować lub usunąć rekord, musisz wiedzieć, jak go jednoznacznie zidentyfikować.

Klucz zastępczy to sztucznie wygenerowany klucz. Są przydatne, gdy Twoje rekordy zasadniczo nie mają klucza naturalnego (takiego jak Person tabeli, ponieważ może się zdarzyć, że dwie osoby urodzone w tym samym dniu będą miały to samo nazwisko lub wpisy w dzienniku, ponieważ mogą wystąpić dwa zdarzenia, które mają ten sam znacznik czasu). Najczęściej zobaczysz je zaimplementowane jako liczby całkowite w automatycznie zwiększanym polu lub jako identyfikatory GUID, które są generowane automatycznie dla każdego rekordu. Numery identyfikacyjne są prawie zawsze kluczami zastępczymi.

Jednak w przeciwieństwie do kluczy podstawowych nie wszystkie tabele wymagają kluczy zastępczych. Jeśli masz tabelę, która zawiera listę stanów w Ameryce, tak naprawdę nie potrzebujesz dla nich numeru identyfikacyjnego. Możesz użyć skrótu stanu jako kodu klucza głównego.

Główną zaletą klucza zastępczego jest to, że można je łatwo zagwarantować jako unikatowe. Główną wadą jest to, że nie mają żadnego znaczenia. Nie ma znaczenia, że ​​„28” to na przykład Wisconsin, ale gdy zobaczysz „WI” w kolumnie Stan w tabeli Adres, wiesz, o jakim stanie mówisz, bez konieczności sprawdzania, który stan jest który w Twoim stanie. tabela.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Różnica czasu między datami zakończenia pierwszych rekordów a datami następnego rekordu

  2. Jak korzystać z właściwości IDENTITY() w SQL Server

  3. Jak sprawdzić istnienie typu tabeli definiowanej przez użytkownika w SQL Server 2008?

  4. Czy istnieje sposób na osadzenie raportów i pulpitów nawigacyjnych Power Bi w aplikacji desktopowej vb.net lub C# z bazą danych sql Server 2008?

  5. Znajdź ostatnio wstawiony rekord MS SQL SERVER