Bir veritabanında arama tablolarının ne zaman ve nerede kullanılacağı konusunda tam olarak nasıl sınırlar yerleştirileceğini bulmakta güçlük çekiyorum. Baktığım çoğu kaynak hiçbir zaman çok fazla olamayacağımı söylüyor, ancak bir noktada, veritabanı o kadar çok parçaya bölünmüş gibi görünüyor ki, verimli olsa da artık yönetilemez. İşte birlikte çalıştığım şeye bir atılmış örnek:
Çalışanlar adında bir masam var diyelim:
ID LName FName Gender Position
1 Doe John Male Manager
2 Doe Jane Female Sales
3 Smith John Male Sales
Bir an için verinin daha karmaşık ve yüzlerce satır içerdiğini düşünün. Arama masasına taşınabileceğini gördüğüm en bariz şey Position. Konumlar adı verilen bir tablo oluşturabilir ve Konumlar tablosundaki yabancı anahtarları Konum sütununda Çalışanlar tablosuna yapıştırabilirim.
ID Position
1 Manager
2 Sales
Ancak, yönetilemez hale gelmeden önce bilgileri daha küçük arama tablolarına bölmeye nasıl devam edebilirim? Bir Toplumsal Cinsiyet tablosu oluşturabilir ve 1’in Erkek’e, 2’sinin de Dişi’ye ayrı bir arama tablosunda eşleşmesini sağlayabilirim. LNames ve FNames'i tablolara bile koyabilirim. Tüm "John" girişleri, 1'in kimliğinin John'a karşılık geldiğini belirten FName tablosuna işaret eden 1 yabancı anahtarla değiştirilir. Bu tavşan deliğinden bu kadar aşağı inerseniz, Çalışanlar masanız yabancı anahtar karmaşasına indirgenir:
ID LName FName Gender Position
1 1 1 1 1
2 1 2 2 2
3 2 1 1 2
Bu, bir sunucunun işlemesi için daha verimli olabilir veya olmayabilir, ancak bu kesinlikle onu korumayı deneyen ve uygulama geliştiricisinin erişmeye çalıştığı bir uygulama geliştiricisi için zorlaştıran normal bir kişi tarafından okunamaz. Öyleyse benim asıl sorum ne kadar uzakta? Bu tür bir şey için "en iyi uygulamalar" var mı yoksa bir yerlerde iyi bir kurallar dizisi var mı? Sahip olduğum bu konu için gerçekten iyi ve kullanışlı bir kılavuzlar dizini çağıran hiçbir bilgiyi çevrimiçi bulamıyorum. Veritabanı tasarımı benim için eski bir şapka ama İYİ veritabanı tasarımı çok yeni, bu yüzden aşırı teknik cevaplar kafamda olabilir. Herhangi bir yardım takdir edilecektir!