Bir tablo tasarım senaryom var ve DBA olmayan bir tür olarak, hangi daha ölçeklenebilir görüş istiyorum.
Diyelim ki küçük bir mahalle (200 ev) ile başlayıp sonunda 5000000+ eve kadar büyüyen bir metro alanı için evler hakkında bilgi kaydetmeniz istendi.
Temel bilgileri saklamanız gerekir: ID # (Benzersiz bir dizin olarak kullanabileceğimiz benzersiz bir lot #), Addr, City, State, Zip. Güzel, basit masa bunu halledecek.
Ancak her yıl, tüm evler hakkında ekstra bilgi kaydetmeniz istenecektir - ve her yıl NE bilgileri değişecektir. Bu nedenle, örneğin, ilk yıl, sahiplerin soyadını ve kare görüntülerini kaydetmeniz istenir. İkinci yıl, soyadı tutmanız istenir, ancak kare görüntüleri dökün ve bunun yerine sahiplerin adlarını toplamaya başlayın.
Son olarak - her yıl fazladan sütun sayısı değişecektir. 2 ekstra sütunla başlayabilir, ardından gelecek yıl 6'ya, ardından 2'ye geri dönebilir.
Bu yüzden bir tablo yaklaşımı, özel tabloları ev tablolarına sütun olarak eklemeye çalışmaktır, böylece yalnızca bir tablo vardır.
Ama birinin bunun için tabloları ortaya koyduğu bir durum var:
"Ev Masası" sütunları: ID, Addr, Şehir, Eyalet, Zip - ev başına bir satır ile
ID Addr City State Zip
-------------------------------------------
1 10 Maple Street Boston MA 11203
2 144 South Street Chelmsford MA 11304
3 1 Main Avenue Lowell MA 11280
"Özel Bilgi Tablosu" sütunları: Kimlik, Ad, Değer - tablo aşağıdaki gibi görünür:
ID Name Value
1 Last Name Smith
2 Last Name Harrison
3 Last Name Markey
1 Square Footage 1200
2 Square Footage 1930
3 Square Footage
Yani her ev kaydı için birden fazla satır var. Her yıl isteğe bağlı bilgiler değiştiğinde, bu tablo tam anlamıyla yeniden oluşturulur, bu nedenle gelecek yıl şöyle görünebilir:
1 Last Name Smith
2 Last Name Harrison
3 Last Name Markey
1 First Name John
2 First Name Harry
3 First Name Jim
Sonunda 100.000 ev sırası toplarsınız ve bir yıl 10 ekstra bilgi daha vardır; şimdi ikinci tablo, birçoğu gereksiz (açıklama) bilgiye sahip 1.000.000 satırlık bilgidir. Veritabanı gereklilikleri genel olarak, insanların günlük satır sayısı + ilişkili satır alanı bilgileri + ilişkili özel alan değerlerini almaları gerekecek olmasıdır.
Yani sorum: Bunun yerine aşağıdakilerden birini yapmak kötü olur (ya da korkunç):
A) Ev tablosunu maksimum özel sütun sayısını (belki "1" ila "10" olarak adlandırılır) tahmin ederek düzenleyin ve bu özel değerleri doğrudan ev satırlarına ekleyin
VEYA
B) Özel bilgileri ev tablosunda saklayın, ancak her yıl gereksinimler değiştiğinde, ev tablosunu yalnızca özel bilgiler için gereken sütun sayısı ile, gereksinimlerin somunlaşabileceği ve asla maksimum maksimum isteğe bağlı alanlar istenebilir mi?
Teşekkürler, umarım bu mantıklıdır!