Tabloları ve görünümleri adlandırırken hangi standardı izlemeliyim?


20

Tabloları ve görünümleri adlandırırken hangi standardı izlemeliyim? Örneğin, tablo adlarının başına tbl_ gibi bir şey koymak iyi bir fikir midir? Kod / arama tablolarını ct_, lut_ veya codes_ gibi bir şekilde belirlemeli miyim? Başka yapılacak / yapılmayacak şeyler var mı?

MS SQL Server kullanıyorum ve birçok tablo ile birçok veritabanı var, bu yüzden bazı rasyonel ile standart olarak kullanabileceğimiz bir şey olması güzel olurdu.

Yanıtlar:


29

Tamam, önce ASLA bir tablonun adının önüne tbl koyma. Bu bir masa, biz zaten bunu zaten. Buna Macar Notasyonu denir ve insanlar bunu 5+ yıl önce durdurdu.

Nesneyi ne olduğuna göre çağırmanız yeterlidir. Bir tablo çalışan verilerini tutarsa, onu "Çalışan" olarak adlandırın. Bilgisayarlar hakkında bilgi tutarsa ​​"Bilgisayar" deyin. Bilgisayarları çalışanlarla eşlerse "EmployeeComputer" veya "ComputerEmployee" olarak adlandırın (kişisel olarak "EmployeeComputer" ı daha çok seviyorum).

Kullanılacak gerçek bir adlandırma kuralı yoktur (Macar Notasyonu kullanmamaktan başka). Nesne isimleri, önemli olan şeyin ne anlama geldiği anlamına gelir.


11
Ben Çalışan, Cumputers örneklerini gördüğümüz gibi buna ek olarak, çoğul isimler olarak tabloların isimlerini koymak etmeyiniz .. Hepimiz biliyorum tabloları .. sayıda satır, bir değil almak gerekiyor
Marian

1
Neden bir tablonun görünümlerini yarattın? Tüm görünüm, depolanan bir seçim ifadesidir. Dizine alınmış bir görünüm kullanmıyorsanız, veriler görünümün arkasında gerçekleşmez. Hiç bir zaman görüş kullanmıyorum, hiç kullanmadım. Bunu yapmak için kesinlikle herhangi bir performans avantajı yoktur.
mrdenny

2
Birkaç tabloya katılmak veya kod değerlerini insan tarafından okunabilir değerlere çevirmek gibi bir şey yapmak istediğimizde görünümleri kullanırız. İkinci durum ise, simüler bir isimle son bulacağınız durumdur.
Beth Whitezel

2
Bay Denny'nin cevabı ve takip eden katkıları bu tarafından desteklenmektedir: dba4life.blogspot.com/2007/11/…

1
@Marian: Ben çoğulları kullanıyorum, çünkü sorguları daha doğal okuyorlar ve anahtar kelimelerle çarpışmaları çözüyorlar. Çalıştığım birçok sistemde bir sipariş varlığı vardı. Çoğulları kullanmak, tablo adını ordersdeğil yapar ve orderher kullanıcı olduğu zaman tablo adını belirtmek zorunda kalmaz . Bu aynı zamanda groupve diğer anahtar kelimeler için de geçerlidir . Neyse ki, birkaç anahtar kelime ortak varlıklarla çarpışır.
BillThor

13

Hem izinler hem de gruplama için şemalar kullanırız (bunları SQL'de ad alanları olarak düşünün). Yani "tbl" vb yerine

  • Data.Thing
  • Data.ThingHistory
  • Data.Stuff

Veri şemasına kod girilmez. Veri şemasının dışında tablo yok. Bu tabii ki isterseniz bir Arama veya Aşama şeması olması için genişletilebilir.

Kullandığımız görünümler için vwbu, SQL Server 2000'deki tablolardan ayırt etmekti ve şimdi biraz eski


3
Şema önermek için +1. 100'lü tablolarla büyük db'yi korurken bu kullanışlı olacaktır. İşlevsel gruplama için de şemalar kullanıyoruz .. AdventureWorks db
CoderHawk

5

Şahsen ben Fanö Bedingung'un büyük bir hayranıyım , yani burada ismin başka bir geçerli ismin başlangıcı olmasına izin verilmiyor.

İkincisi, iki isim arasındaki Hamming mesafesi bir harften daha iyidir.

Evet, bunlar önceden dijital zamanlardan gelen kurallar, ama hayatı kolaylaştırıyorlar.

Ve üçüncü isimler belirgin olmalı veya ses tanıma gerçekleştiğinde delireceksiniz.


2
Ses tanıma gerçekleştiğinde yine de delireceğim. :-)
Beth Whitezel

Sadece telefon desteği yaparsanız
bernd_k

1
Ses tanıma geldiğinde kamyon şoförü olacağım. Bu ya da çılgın bir keşiş.
mrdenny

"Fano Bedingung" un ne olduğunu daha ayrıntılı olarak açıklayabilir misiniz (belki bir örnekle)?
Nick Chammas

1
@NickChammas Bence İngilizce'de bu Shannon-Fano kodlaması diyoruz .
Iain Samuel McLean Elder

2

Orada gerçekten herhangi bir "en iyi" adlandırma kuralının olduğunu bilmiyorum, çünkü gerçekten kişisel tercihlere ve gelişim kolaylığına bağlı. Benim tavsiyem bir adlandırma kuralı seçmek ve ona uymaktır. Alt çizgiyle sözcükleri ayırmak isterseniz, bunu tüm veritabanı nesnelerinizde yapın. CamelCase kullanmak istiyorsanız, bunu tüm veritabanı nesnelerinizde yapın.

Mağazamda aşağıdaki kurallara uyuyoruz:

Kelimeleri alt çizgi ile ayırırız ve tüm küçük harfleri kullanırız.
Tablo adlarımız ne olduklarını açıklar: dbo.person, dbo.invoice. Çoktan çoğa
tablo isimlerimiz aynı zamanda ne olduklarını da tanımlar ( eşleştirilen birçok ilişkiye işaret etmek için mm eklenmesiyle birlikte : dbo.person_mm_adresi. Kullanıcı tanımlı saklı prosedürlerimiz hem nesneyi hem de gerçekleştirilen eylemi açıklar: usp_person_select , usp_address_select_by_city Görüş ve işlevlerimiz saklı yordamlarla aynı kuralları izler: Dizinlerimiz tablo, anahtar sütunlar (sıralı) ve kümelenmiş / kümelenmemiş göstergelerini içerir: ix_person_last_name_first_name_nc

Mağazamda kullandığımız şey bu olduğu için, bu kuralların sizin için doğru olduğu anlamına gelmez. Sizin ve geliştirme ekibinizin hem yararlı hem de geliştirmesi kolay olduğu konusunda hemfikir olduğunuz bir şey seçin ve karar verdiğiniz adlandırma kurallarını bilmek ve kullanmak için bir kültür oluşturun. Bizim durumumuzda, bu bir veritabanında oluşturulan nesneler için kod inceleme içerir. Zamanla, belgelenmiş bir adlandırma kuralı ve akran kodu incelemesinin birleşimi, konvansiyondan daha az ve daha az sapmaya yol açmıştır.

Umarım bu "cevapsız" bir şekilde yardımcı olur.


2

Yıllar öncesinden beri bunlardan memnunum

  • tablo adları: küçük büyük harfler ve alt çizgiler, tekil {müşteri, ürün}
  • çoktan çoğa ilişki için tablo adları: tablename1_tablename2: {customer_product}
  • görünümler: sonuna küçük kapaklar eklendi v {customerv, productv, product_groupv}
  • depolanmış procudures: tablo adı ve işlevi {customer_select, customer_insert, customer_delete, customer_update}

ucuz bir paylaşılan barındırma paketiniz varsa, örneğin veritabanı yöneticileri sitesi, da_users, da_questions gibi tüm nesnelerin önünde proje kısaltmasını kullanmanız gerekir.


Neden product_groupvve değil görüntüler product_group_viçin (bu görünüm ve tabloların bu ayrım konusunda ısrar ediyorsanız)?
ypercubeᵀᴹ

@ ypercube çünkü fazladan bir alt çizgi yazamayacak kadar tembelim ve yazım hatalarını kolayca yaparım. Alt çizgi kullandığımda sözcükleri daha kolay okudum ve tablolardan görünümü ayırmak için v kullanıyorum ve v bir kelime değil, bu yüzden alt çizgi kullanmıyorum .. Tutarsız görünüyor, evet, ama bu biçimi pratik buluyorum.
Uğur Gümüşhan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.