Db İsimlendirme Kuralları
Temel Kurallar
-
Genel ilke: Tüm isim parçaları PascalCase (her kelimenin ilk harfi büyük, bitişik yazım) kullanılarak oluşturulur. (Id dahil)
-
Bölümlü yapı: Nesne adları
_(alt çizgi) ile ayrılan segmentlerden oluşur. Her segment PascalCase olmalıdır.- Şablon:
[Prefix]_[Rn | RnPj]_[ModulKodu]_[NesneAdi] - Örnek:
Tb_Rn_Inventory_Items,Sp_RnPj_Production_CreateBomCost
- Şablon:
-
İngilizce ifade edilir: İsimlerde İngilizce kullanılır.
-
Geçici yapılar: Geçici tablo/view adları ilgili
Tmpöneki ile başlar. -
Türkçe karakter yok: İsimlerde
Ç, Ğ, İ, Ö, Ş, Üve boşluk kullanılmaz; ASCII karakterler tercih edilir. -
Çoğul isimler: Tablo adları çoğul olur:
Items,Orders. -
Birincil anahtarlar:
[TekilTabloAdi]Idbiçimindedir (ör.ItemId,OrderId). -
Metin alanlar: 'NVARCHAR' tipi kullanılır. (örn. NVARCHAR(50), NVARCHAR(100), NVARCHAR(250), gerektiğinde NVARCHAR(MAX)). Tüm Unicode sabitleri N'...' biçiminde yazılmalıdır
-
Tarih/zaman alanları:
Date,DateTime,UtcDateTimeson ekleri kullanılır (ör.AddDate,UpdateDate,UpdateDateTime). Datetime tercih edilir. smalldatetime tipinden kaçınılmalıdır. -
Mantıksal alanlar:
Is*ile başlar ve bit tipindedir(ör.IsActive,IsFinished). 'Tiynint' tipinden kaçınılmalıdır. -
Sayısal Alanlar: Tamsayı için 'int', virgüllü sayı için 'decimal(18,6)' tipi kullanılır. 'Tiynint' tipinden kaçınılmalıdır.
-
Terim seçimi (tip/tür/grup): Aynı anlama gelebilecek ifadeler arasında
tip(İngilizce karşılığı:Type) tercih edilir. “Tür”, “grup”, “sınıf”, “kategori” gibi kelimeler isimlendirmede kullanılmaz.- Doğru:
ItemTypeId, PriceTypeId, OperationTypeId - Yanlış:
ItemTurId, PriceGroupId, OperationClassId
- Doğru:
-
Sabit/standart kısaltmalar: Kullanılmamaya çalışılır. Ancak gerekli olduğunda, herkesçe bilinen ve proje genelinde tutarlı bir liste ile sınırlandırılır:
- İzin verilenler (örnek):
Id,No(numara),Qty(miktar),Avg,Min,Max,Net,Gross,Ref,Code,Desc(gerekliyse). - Kaçınılacaklar: ...
- Birim/simge kısaltmaları: Teknik/uluslararası standartlar aynen kullanılır (
Kg,Mm,Cm,Usd,Eur). - Kısaltma ilkesi: Açık isim > kısaltma. Kısaltma yalnızca isim çok uzunsa, tekrar eden bir desen ise veya alanda yer kısıtı varsa kullanılır.
- Tutarlılık: Bir kez seçilen kısaltma tüm şema boyunca aynı anlamda kullanılmalıdır.
- Örnekler:
- Sıra No: LineNumber
- Açıklama: Notes
- KullanıcıId: @sssip (Sp lerde)
- BypassTrig: Bir tabloda Update trigger' ı varsa 'BypassTrig' adında bir alan açılır.
- İzin verilenler (örnek):
Nesne Türleri
- Tablo
- View
- Stored Procedure
- Function
- Trigger
- Index
- Foreign Key (FK)
- Default Constraint
- Sequence
Genel Şablon
[Prefix]_[Rn | RnPj]_[ModulKodu]_[NesneAdi]
Prefixler
| Prefix | Tür | Not |
|---|---|---|
| Tablolar | ||
| Tb | Tablo | Kalıcı tablolarda kullanılır |
| Tmp | Ge çici Tablo | Oturum/geçici içerikler |
| View | ||
| Pv | View | Primary (operasyonel) view |
| Sv | Seçim (Lookup) View | Şimdilik kullanılmıyor |
| Cv | Rapor Katalog View | Şimdilik kullanılmıyor |
| TmpPv | Geçici View | Geçici tablolara bakan view |
| Stored Procedure | ||
| Sp | Stored Procedure | İş kuralı/proses |
| Function | ||
| Fn | Function | Skalar/table-valued |
Modül Kodları
| Prefix | Modül | Örnek |
|---|---|---|
| Ana Modüller | ||
| Sales | Sipariş | Tb_Rn_Sales_Order |
| Planning | Planlama | Tb_Rn_Planning_WorkOrder |
| Inventory | Stok & Ürün Ağacı | Tb_Rn_Inventory_Item |
| Production | Üretim | Tb_Rn_Production_Bom |
| Purchase | Satın Alma | Tb_Rn_Purchase_Order |
| System | Sistem | Tb_Rn_System_User |
Diğer Nesneler İ çin İsim Şablonları
| Adı | Sözdizimi (Syntax) | Örnek |
|---|---|---|
| Trigger | [TabloAdi]_[Islev] | Tb_Rn_Sales_Order_UpdateAudit |
| Index | Ix_[TabloAdi]_[Kolon1]_[Kolon2]... | Ix_Tb_Rn_Sales_Order_OrderCode |
| Unique Index | Uix_[TabloAdi]_[Kolon1]_[Kolon2]... | Uix_Tb_Rn_System_User_UserName |
| Foreign Key | Fk_[TabloAdi]_[RefTabloAdi]_[AlanAdi] | Fk_Tb_Rn_Sales_Order_Tb_Rn_Inventory_Item_ItemId |
| Default Constraint | Df_[TabloAdi]_[KolonAdi] | Df_Tb_Rn_System_User_IsActive |
| Sequence | S_[TabloAdi]_[AlanAdi] | S_Tb_Rn_Sales_Order_OrderNo |
Not:
TabloAdi,RefTabloAdi,AlanAdisegmentlerinin tümü PascalCase olmalıdır.
Örnekler
- Tablo:
Tb_Rn_Inventory_Item - View:
Pv_Rn_Production_BomTree - SP:
Sp_Rn_Purchase_CreateOrder - FN:
Fn_Rn_System_DivideByZero - Trigger:
Tb_Rn_Quality_SsTransactionItems_UpdateLock - Index:
Ix_Tb_Rn_Inventory_Item_ItemCode - FK:
Fk_Tb_Rn_Production_Bom_Tb_Rn_Inventory_Item_ItemId - DF:
Df_Tb_Rn_System_User_AddDate - Sequence:
S_Tb_Rn_Finance_ExchangeRate_RateNo
Stil Denetim Listesi (Hızlı Kontrol)
- Segmentler
_ile ayrıldı mı? - Her segment PascalCase mi?
- Türkçe karakter yok mu?
- Entity adları tekil mi?
- PK/FK, tarih ve bit alan isimleri kurala uygun mu?
- Prefix ve modül kodu doğru mu?
Snippet
Redgate Sql Prompt
Snippet’larla hızlı ve tutarlı Sql yazın. İsimlendirme kurallarına %100 uyumlu Sql kodu yazmak için şu repo’daki hazır şablonları kullanın: ReniumYazilim / SQL-DEV / SQL-PROMPT / Snippets
Hızlı Seç: Senaryo → Snippet
| Senaryo | Kullanılacak Snippet |
|---|---|
| Tablo oluşturma | snp_CreateTable-a27c8d44-5ecc-475a-90a1-caf7b22dbe24.json |
| SP oluşturma | snp_CreateSp-0c85b39e-3122-44db-9de0-603b18f4bec6.json |
| TvFn / Fn | xxx / Function_TvFn_Template.sql |
| Trigger | xxx |
| Index / Unique Index | xxx |
Editörlerde (Ssms / Visual Studio) snippet’ları nasıl kullanırım?
- Repoyu klonlayın veya ZIP olarak indirin.
- Editörde snippet dosyasını açın ve kendi tablo/nesne adınızla düzenleyin.
- İsimlendirme kontrol listemize göre alan adlarını gözden geçirin.
- Kaynağı “şablon” olarak saklayın; yeni nesnelerde doğrudan kopyalayıp doldurun.
Renium kullanıcıları. ...\OneDrive - RENIUM\Belgeler - Proje\General\GitHub\SQL-DEV\SQL-PROMPT\Snippets klasöründen daha hızlı ve isimlendirme standartlarına uygun SQL snippet’lara erişebilirsiniz:::