Bunun oyuna geç olduğunu biliyorum ve soru zaten çok iyi cevaplandı, ancak sütun adlarının ön eki hakkında # 3 hakkında görüşümü sunmak istiyorum.
Tüm sütunlar, tanımlandıkları tabloya özgü bir önekle adlandırılmalıdır.
Örneğin, tablolar "müşteri" ve "adres" olarak, sırasıyla "cust" ve "addr" önekleriyle gidelim. "müşteri" içinde "cust_id", "cust_name" vb. olur. "adres" içinde "addr_id", "addr_cust_id" (müşteriye geri FK), "addr_street" vb.
Bu standarda ilk sunulduğumda, ona karşı çıkmıştım; Bu fikirden nefret ettim. Tüm bu ekstra yazma ve artıklık fikrine dayanamadım. Şimdi onunla asla geri dönmeyeceğim kadar deneyimim oldu.
Bunu yapmanın sonucu, veritabanı şemanızdaki tüm sütunların benzersiz olmasıdır. Buna karşı tüm argümanları koyan büyük bir yararı var (bence, elbette):
Tüm kod tabanınızı arayabilir ve belirli bir sütuna dokunan her kod satırını güvenilir bir şekilde bulabilirsiniz.
# 1'in yararı inanılmaz derecede büyük. Bir sütunu kullanımdan kaldırabilir ve sütunun güvenli bir şekilde şemadan kaldırılabilmesi için hangi dosyaların güncellenmesi gerektiğini tam olarak bilirim. Bir sütunun anlamını değiştirebilir ve tam olarak hangi kodun yeniden düzenlenmesi gerektiğini bilirim. Veya bir sütundaki verilerin sistemin belirli bir bölümünde kullanılıp kullanılmadığını bile söyleyebilirim. Bunun potansiyel olarak büyük bir projeyi kaç kez basit bir projeye dönüştürdüğünü ya da geliştirme çalışmalarında ne kadar tasarruf ettiğimizi sayamıyorum.
Bunun nispeten küçük bir yararı da, sadece kendi kendine birleştirme yaptığınızda tablo takma adları kullanmanızdır:
SELECT cust_id, cust_name, addr_street, addr_city, addr_state
FROM customer
INNER JOIN address ON addr_cust_id = cust_id
WHERE cust_name LIKE 'J%';