Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Akankah SQL Server 2005 menghukum saya karena menggunakan nvarchar(50) sebagai kunci utama, bukan bilangan bulat?

Anda telah menemukan salah satu "perang suci" utama dari desain database. Perdebatan yang Anda maksud adalah argumen "pengganti vs. kunci alami" yang telah berkecamuk selama ada RDBMS (sedekat yang saya tahu).

Perdebatan pada dasarnya bermuara pada apakah kunci perwakilan (pengganti, misalnya kolom IDENTITAS) harus digunakan versus menggunakan data aktual yang secara unik menggambarkan catatan (kunci alami).

Saya akan mengatakan bahwa tidak ada jawaban yang "benar". Ukuran kinerja adalah artefak dari platform, dan harus dinilai dengan eksperimen, tetapi kinerja sepertinya tidak menjadi perhatian utama.

Apa yang saya anggap sebagai argumen utama untuk kunci pengganti adalah kekekalan kunci utama. Jika Anda memilih untuk menggunakan kunci alami, Anda melepaskan opsi untuk mengubah kunci itu setelah dibuat. Anda juga melepaskan kemungkinan bahwa itu mungkin menjadi tidak unik di beberapa titik di masa depan. Untuk alasan tersebut, saya biasanya (tidak selalu) menggunakan kunci pengganti untuk sebagian besar tabel saya.

Namun, seperti yang saya sebutkan, ada perdebatan lama yang diisi dengan diskusi tentang strategi pengindeksan dan kepatuhan bentuk normal untuk dibaca jika Anda menginginkannya.

Saya akan Google "pengganti vs kunci alami". Berikut adalah beberapa tautan untuk membantu Anda memulai:

Rekayasa Sistem dan RDBMS

Techrepublic

Blog Tony Rogerson

Semoga membantu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mengekstrak karakter ke-n tertentu dari string dalam SQL

  2. Perbedaan antara datetime dan timestamp di sqlserver?

  3. 'MOD' bukan nama fungsi bawaan yang dikenali

  4. T-SQL:pisahkan dan gabungkan nilai yang dipisahkan koma

  5. Cara Memulihkan Database SQL Server di Mac menggunakan Azure Data Studio