Son derece kısaltılmış tablo adlarını kullanmak için bir neden var mı?


22

Veritabanı tablo adlarını okumak için çok zor olan ve nerede depolandığına dair hiçbir belge bulunmayan bir satıcının uygulamasından bir veritabanı kurulumu kullanıyoruz. Özel bir uygulamada neden masa yapılarını gizlemek istediğini anlayabiliyorum, ancak bu uygulamanın satış noktalarından biri (Kurumsal Kaynak Planlaması) özelleştirilebilirdi.

Tablo isimleri aptrx (Satıcılar Muhasebesi İşlemleri) ve apmaster_all gibidir (meraklı bir şekilde, satıcılar tablosu budur). Bu oldukça karmaşık bir veri tabanıdır, bu yüzden sözleşmede herhangi bir mantık olup olmadığını ya da sadece kasıtlı olarak mı yoksa başka şekilde mi karıştırıldığını merak ediyordum.

Bildiğim kadarıyla, tablonun adının uzunluğu dikkat çekici bir şekilde performansı etkilemeyecek, değil mi? Veritabanı çok karmaşık (yüzlerce tablo) bu yüzden sıralama anlamlı, ancak neden AccountsPayableTransactions'ın aptrx tercih edildiğini bilmiyorum.


8
Birisi kafanın arkasında daha iyi bilecek kadar sert
yapılmadı

2
* smirks * iş güvenliği için, eski programcıları kovma ve yenilerini işe alma maliyeti, şifreli isimleriniz varsa çok daha yüksek hale gelir.
Yalan Ryan

@Lie_Ryan kesinlikle böyle görünüyor, bir danışman işe alacağınızı umuyorlar ...
Ben Brocka

FWIW, muhasebe sistemlerinde çalışıyorsanız, "aptrx" şifreli değildir. Çok açık. Aşağıda cevabımda daha fazla detay.
Mike Sherrill 'Kedi Hatırlama'

şaşırtmaca bir nedenidir
Arnaud Le Blanc

Yanıtlar:


23

Oracle, 30 karakterlik masa isimlerinde uzun süredir devam eden bir sınırlama getirdi. Bunun 16 bitlik orijinal bir ortama dayanan eski bir mesele olduğunu düşünüyorum.
Bir tablo adının uzunluğu, tüm adların bir veri sözlüğünde saklanması ve sorgular için ayrıştırılması gerektiğinden performans üzerinde bir miktar minus etkisi olabilir, ancak isabeti ölçebileceğinizi düşünmüyorum.

Kısa tablo adlarının daha önemli bir etkisi de çalışmanın zor olmasıdır. Benim de kısa isimlerle kurumsal veritabanı şemasını sürdürmem gerekiyor. Kısa tablo isimlerinin olması için iyi bir sebep yoktur. Bakım kolaylığı her zaman şaşırtmaya ya da eski DOS alışkanlıklarına neden olmaz.


2
Eğer 30 karakter tablolar için benzersiz isimler bulmak için yeterli değilse, herhangi bir DBMS veya geliştirme ortamının çözebileceğinden çok daha ciddi bir probleminiz var: dilinizin ve / veya kelime.
Erwin Smout

18

Söylenmesi ya da detaylandırılması gereken iki şey olduğunu hissediyorum:

  1. Bir şeyleri adlandırmak , göründüğü kadar önemsiz değildir

    Bilgisayar Bilimi'nde sadece iki zor problem var: önbellek geçersiz hale getirme ve adlandırma Phil Karlton

  2. Kısa anlamsız isimler her zaman kötü olsa da, uzun isimler her zaman iyi değildir - beyinlerimizin şaşırtıcı bir şekilde düşük olan içsel bir dr eşiği vardır. 30 karakter genellikle yeterlidir ancak olmasa da istisnai durumlar için daha fazla izin vermek için RDBMS'yi tercih ederim (ve tıpkı dilde olduğu gibi, daha uzun isimler, çok sık konuşmadığımız şeyler için daha faydalıdır - kısıtlama isimleri ve daha kısa isimler her zaman sorguladığımız tablolar için daha kullanışlıdır)

Her zaman isimleri seçmek için çok az zaman harcamak isterim ve bunu yaparsam pişman olurum - isimleri değiştirmek sadece nadiren olur


2
İsimler konusunda çok seçici davranıyorum ve şu anki sınırlı yeteneğimle onları değiştirebiliyorum. Yine de UX'leyim, bu yüzden kullanılamaz isimler özellikle beni çok rahatsız edebilir. Artı ben sadece düz camelCase tercih ...
Ben Brocka

7

Tembellik. IntelliSense ve 3. parti seçenekleri yazarken haklı çıkarmak için gerçekten zor bir bahane. İsimlerin anlamlı ve okunabilir kelimelere sahip olmasını tercih ederim.


6

Tablo isimleri aptrx (Satıcılar Muhasebesi İşlemleri) ve apmaster_all gibidir (meraklı bir şekilde, satıcılar tablosu budur). Bu oldukça karmaşık bir veri tabanıdır, bu yüzden sözleşmede herhangi bir mantık olup olmadığını ya da sadece kasıtlı olarak mı yoksa başka şekilde mi karıştırıldığını merak ediyordum.

İyi bilinen kısaltmalar, genellikle sözcükleri hecelemede tercih edilir. Bir kısaltma bazı insanlar tarafından iyi bilinir, ancak yeterince insan olmazsa, onu kısaltma olarak adlandırırız ve kod olarak adlandırmaya başlarız.

Kısaltmalar, sınırlı limitleri olan platformlarda alanı korur, ancak bu 30 yıl öncekinden daha az önemlidir. (1980'lerde sizi bir tablo adı için 6 ya da 8 karakterle sınırlayan bir sistem üzerinde çalıştığımı hatırlıyorum.)

Kısaltmalar, kısaltmanın iyi yapılması koşuluyla genellikle tablo adlarını ve sütun adlarını okumayı kolaylaştırır. Bütün gün AP kodunda çalışmış olsaydım, "ap_trx.inv_num" gibi sütun adlarını "account_payable_transactions.invoice_number" yerine okumak yerine tercih ederim. (Alt çizgi seviyorum.) Uzun isimler yazmak iyi bir metin editörüyle ilgili bir sorun değil.

Muhasebe sistemlerinde, hem "ap" hem de "trx" iyi bilinen kısaltmalardır. Diğerleri, alacak, genel muhasebe defteri ve genel dergi hesapları için "ar", "gl" ve "gj" değerlerini içerir.

İyi tasarlanmış bir sistemde, "aptrx" adlı bir tabloda ödenecek işlemler bulursam, artrx’de alacak hesapları, gltrx’de genel muhasebe işlemleri ve benzerlerini bulmayı umuyorum. Ben "apmaster_all" 'ı biraz kafa karıştırıcı buluyorum, fakat "armaster_all"' ı da bulursam, ilk önce tüm satıcıları (aktif veya inaktif satıcıların aksine) elinde tuttuğunu ve ikincisinin de benzer şekilde tüm müşterileri elinde tuttuğunu varsayardım.

Diğer sorun alanlarında, diğer iyi bilinen kısaltmaları bulabilirsiniz. Adreslemede, adres için "adres", sokak için "st", ABD Posta Hizmeti için "usps", Birleşik Parsel Hizmeti için "ups", ilçe için "cty", Bölge İyileştirme için "zip" gibi kısaltmalar bulacaksınız. Kod vb.

Bu şaşırtmaca demezdim. Borç hesapları, "cdrs21" adlı bir tabloda saklanmış olsaydı, bu şaşırtmaca derdim . (Bir keresinde, tüm ana bilgisayar birleştirici modüllerini bu şekilde adlandıran bir şirket için çalışmış olmama rağmen. Karakter sınırları, şaşırtma değil.)

Ancak yararlı veritabanları büyür ve veritabanları büyüdüğünde bir sorunla karşılaşırsınız. Veritabanınıza sorun alanları ekledikçe, iyi bilinen kısaltmaların çarpıştığı durumlarla karşılaşırsınız. Medya ile ilgilenirseniz, "ap" "Associated Press", "alternatif pres" veya "önceden yerleştirme" yi de kısaltabilir. Bu olduğunda, kısaltmalardan vazgeçme veya kodlara geçme zamanı. Kuruluş ne kadar büyükse (ve veritabanı ne kadar büyükse) kodları o kadar sık ​​bulurum.


4
Sorunun bir kısmı, bu tabloların muhasebeciler tarafından muhafaza edilmemesi, bir sistem analisti tarafından muhafaza edilmeleri ve genel olarak BT Departmanımız aptrx aslında bulduğum en mantıklı isimlerden biri, ben sadece 'ettik hatırladım . Ayrıca birkaç yüz masa olduğunu unutmayın; "hesaplar" için "ap" gibi temel kısaltmaları öğrenmek çok kolaydır, "ap" den sonra gelen tam anlamıyla 100 son ekleri değildir ...
Ben Brocka 10:11

4

Sadece "Tanrım, gözlükleri bu korkunç adlandırma kongresi için hiçbir şey yapmıyorlar" hikayesi ile şaka yapıyorum. Son ortamımdaki veri yönetimi ekibi, tablo ve sütunlar için 18 karakterden oluşan kısaltılmış tablo adlarını kullanmanın nedeninin DB2 sınırlaması olduğunu (z / os ve SQL Server'da DB2 bulunduğunu) belirtti. Derhal bunun IBM sitesinden gelen belgelerle yanlış olduğunu belirttim. Daha sonra, MF jokeyleri tarafından onaylanan veri tabanı ile konuşması gerektiğinden, bir COBOL sorunu olduğunu (evet, aktif olarak COBOL geliştirildiğini) belirttiler. Sonunda onların yanıtı bizim yayıncılık standartımızdı.

Standartlar komitesine uzunluğu 18'den 32 karaktere çıkarmak için dilekçe verdik ve 30 karakter sınırlaması aldık. Bu, 'SR_M_DLY_ADV_PRD_S' için işe yaramaz isimlerden 'IDX_FDSHRCLAS_LIF_RTRN_STATS_X' FML'ye giden tablolarla sonuçlandı.

Bu yüzden, onlarca yıllık deneyimimde, kısaltılmış tablo isimleri somut bir fayda sağlamaz ve çöpleri ekranda anlamlı bir tanımlayıcıya çevirmek için her zaman veri sözlüklerine başvurmam gerektiği için geliştirme ve bakım masrafları artar. Çalıştığım ve çoğunlukla hafızadan yeniden oluşturabildiğim mantıksal olarak adlandırılmış varlıklar ile karşılaştırılabilir çünkü sezgisel olarak adlandırıldılar.


1
isimler tamamen işe yaramaz isimlerden biraz daha az işe yaramaz isimlere gidiyor gibi görünüyor. Belki normalleşme yardımcı olabilir? Eğer her tablo daha az işe yararsa, o zaman çok kelimeli kelimelerin uzun olması için daha az sebep vardır, bu yüzden kısaltmak için daha az sebep vardır.
Lie Ryan,

Gerçekten değil, o iğrenç derecede uzun masa denedim daha az yapamadı. İçinde 2'si yabancı anahtar olmak üzere 4 sütunu var. Bu, bilginin kutsal veri sözlüklerini koruyanların dışında, herkese "iade istatistikleri" tablosu. Endeks fonu payı sınıf yaşam boyu geri dönüş istatistikleri çapraz referans tablosu var.
billinkc

sadece aklımı başımdan aldın; belki de sadece sorun alanını tanımıyorum, ama kısaltılmamış ismi gördükten sonra bile masa bana hemen belli değil. Aklımdaki birkaç soru (sadece bana hemen açık olmayan şeylerin bir listesi, istemiyorsanız onlara cevap vermek zorunda değilsiniz): Bu bir varlık tablosu mu yoksa bir ilişki tablosu mu? "İndex" in "database index" ile ilgisi var mı? "Çapraz referans" ve "istatistiği döndür" ifadesiyle bu, denormalize edilmiş bir toplam tablonun (bunları hesaplarken faydalı olabilir) bana ima ettiğini ima ediyor gibi görünüyor?
Lie Ryan,

Finansal hizmetler endüstrisi, varlık tablosu, bir yatırım oranını belirleyen endekslerin (bu durumda yatırım fonu sınıfı) hatırlayamadığım bir şeyle ilgili istatistikleri vardı ...
billinkc 10:11

3

Bu bir alışkanlıktır (Kevinsky ile aynı fikirdeyim). Bazı eski (belki de var olan) sorunlara, işletim sisteminin (DOS, Windows, örneğin) işletim sistemi kısıtlaması (isim uzunluğu, karmaşık isimlerin sözcükleri arasındaki boşluk, çok dilli vb.) Ve bu isimleri kullanmayan bazı yazılımlara tepkisi oldu. Deneyimli insanlar şöyle dedi: "Bunu yapın (kısa kullanın ve altı çizili isimlerle ayrılmış) ve hepsi tamam olur."


2

Posterlerin yukarıda belirtilen nedenlerle tanımlayıcı isimlerini kullanmayı seviyorum.

Ancak başka bir faydası var. Örneğin, açıklayıcı adlandırmada, yuvalanmış adları kullanmanızı sağlar. Çalışan adında bir masanız olduğunu söyleyin. Başka bir tabloyla ilişkiniz varsa, ÇalışanAdresi olarak adlandırılabilir. Veya ÇalışanAktar. Kriptik ile, kısaltılmış adlandırma, bu neredeyse imkansızdır.


0

Her sütunun altındaki tanımların ne kadar karmaşık olduğuna bağlı olarak değişir. İnsanların bu tür çok açıklayıcı sütun adları gördüklerinde meta veri yönetimi ile tembel olduklarını ve hatta aslında eksik açıklamaların olduğunu düşünüyorum. Neden bir şeyi kısaltdığını sorabilirsin.


Tablolar otomatik olmayan meta veriler sağlamadığından geçerli bir argüman olduğundan emin değilim ...
Ben Brocka 10:11
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.