Konvensi Penamaan Indeks SQL Server [ditutup]


175

Apakah ada beberapa cara standar untuk memberi nama indeks untuk SQL Server? Tampaknya indeks kunci utama bernama PK_ dan indeks non-cluster biasanya dimulai dengan IX_. Apakah ada konvensi penamaan di luar itu untuk indeks unik?

Jawaban:


282

saya menggunakan

PK_ untuk kunci utama

UK_ untuk kunci unik

IX_ untuk indeks non unik yang tidak berkerumun

UX_ untuk indeks unik

Semua nama indeks saya berbentuk
<index or key type>_<table name>_<column 1>_<column 2>_<column n>


1
Bagaimana dengan indeks cluster nonunique? CX?
Chris Marisic

8
Saya tidak pernah memiliki kebutuhan untuk indeks cluster yang tidak unik ... Saya menyadari bahwa itu mungkin, tetapi sepertinya tidak pernah menjadi tindakan yang benar bagi saya.
JSR

4
Menurut jawaban yang diberikan di sini stackoverflow.com/questions/1401572/... KEY dan INDEX adalah sinonim. Jadi seharusnya tidak perlu memiliki awalan berbeda untuk kunci unik dan indeks unik?
skjerdalas

2
Ini perbedaan logis, saya menggunakan UniqueKey jika akan ada referensi kunci asing, kalau tidak saya menggunakan UniqueIndex.
JSR

1
Mengapa menyertakan nama tabel ketika dua tabel dapat memiliki nama indeks yang sama? yaitu keunikan tidak diperlukan.
Tahir Hassan

25

Saya biasanya memberi nama indeks dengan nama tabel dan kolom yang dikandungnya:

ix_tablename_col1_col2

2
Bagaimana Anda membedakan antara kolom indeks dan kolom yang disertakan?
John Sansom

3
Saya cukup yakin bahwa dia hanya mendaftar kolom yang diindeks, dalam urutan yang ditempatkan dalam indeks.
Brett

Saya menggunakannya sebagai berikut: IX_TableName_col1_col2-Includedecol1-Includedecol2
freggel

9

Apakah perlu awalan khusus untuk indeks yang terkait dengan kunci asing? Saya kira begitu, karena ini mengingatkan saya bahwa indeks pada kunci asing tidak dibuat secara default, dan jadi lebih mudah untuk melihat apakah mereka hilang.

Untuk ini, saya menggunakan nama yang cocok dengan nama kunci asing:

FK_[table]_[foreign_key_table]

atau, di mana beberapa kunci asing ada di tabel yang sama

FK_[table]_[foreign_key_table]_[foreign_key_field]

1

Saya tahu topik lama tapi saya pikir saya akan membuang 2 sen saya

  • PKC_ Primary Key, Clustered
  • PKNC_ Primary Key, Non Clusterd
  • NCAK_ Non Clustered, Unik
  • CAK_ Clustered, Unique
  • NC_ Non Clustered

Contoh;

NCAK_AccountHeader_OrganisationID_NextDate

Di mana NCAK: Non Clustered, Unique, AccountHeader: Table and OrganisationID_NextDate: Columns.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.