Yazılım geliştiriciler için masaları ve ilişkileri tasarlayan bir ekibimiz var. Kuruluşumuzda, 3NF normalizasyonunun uygulanması konusunda oldukça katılar - dürüst olmak gerekirse, kuruluşumuzun büyüklüğü ve ihtiyaçların veya müşterilerimizin zaman içinde nasıl değiştiği konusunda aynı fikirdeyim. Tasarım kararlarının ardındaki nedenler hakkında net olmayan tek bir alan var: adresler.
Bu daha çok ABD’deki adreslere odaklanırken, bunun bunu yapan herhangi bir ülke için geçerli olabileceğini düşünüyorum. Bir adresin her parçası adres tablosunda kendi sütununu alır. Örneğin, bu korkunç ABD adresini alın:
Attn: Jane Doe
485 1/2 N Smith St SW, APT 300B
Chicago, IL 11111-2222
Bu şekilde veritabanında bölünmüş olur:
- Sokak numarası: 485
- Sokak kesri: 1/2
- Sokak ön yöne: N (Kuzey)
- Sokak adı: Smith
- Sokak tipi: ST (Sokak)
- Yön sonrası sokak: SW (Güneybatı)
- Şehir: Chicago
- Devlet: IL (Illinois)
- Posta kodu: 11111
- Posta Kodu: 2222
- Ülke (ABD olarak kabul edildi)
- Dikkat: Jane Doe
- Posta Kutusu: NULL
- Konut tipi: APT (Daire)
- Konut numarası: 300B
Ve kırsal yollar ve sözleşme yollarıyla ilgili birkaç sütun daha olacaktı. Ayrıca, özel uygulamamızın içinde birkaç uluslararası adres olması muhtemeldir. Veri modelleyicileri, uluslararası adreslere özel, normal satır 1, satır 2 alanları olacak sütunlar ekleyeceklerini söyledi.
İlk başta bunun WAY denize düştüğünü düşündüm. İnternette tekrar tekrar araştırma yapmak, adres satırı 1, 2, 3 ve muhtemelen 4'ü kullanıp ardından şehri, bölgeyi ve posta kodunu ayırmayı ifade eder. Bu taneliğin yararlı olduğu yeni uygulamamız için tek kullanımlık bir vakamız var. Kullanıcının yinelenen bir işletme oluşturmadığını doğrulamalıyız ve adresin kontrol edilmesi doğrulamalardan biridir. Biz olabilir o adres satırına 1 ve 2 ile çalışmak için, ama daha zor olurdu.
Özel uygulamamızda ise, işletmeler ve insanlar için (fiziksel, postalama, nakliye vb.) Çok sayıda adres saklamamız gerekiyor. Biz olabilir yazdırılabilir form mektuplar oluşturmak gerekir, ama bu gereklilik kadar ele edilmemiştir.
Kuruluşumuzdaki uygulamaların desteklenmesi gereken diğer bazı şeyler:
- Denetim (tam tarih tablolarıyla birlikte)
- Posta etiketlerini yazdırma
- Basılı formların oluşturulması
- Raporlama (ulusal ve bölgesel hükümetler için)
Uygulamamız diğer tüm uygulamaların yaptığı her şeyi yapmıyor olabilirken, adresleri birden fazla bileşene bölmek çalıştığım işletme standardıdır . Başvurumuzun bundan faydalanıp faydalanmamasına bakılmaksızın, bunu yapmak zorundayız.
Yarı ile ilgili StackOverflow sorusu: Kapatılan, ancak adreslerin ne kadar zor ayrılabileceğini gösteren iyi bir Adres Ayrıştırıcı nerede .
Tasarım kararlarını daha iyi anlayabilmem ve müvekkilimizi bu fikre satabilmem için
Sokak adresini ayrı sütunlara bölerek hangi problemler çözülür?
Böyle bir sistemi uygulayan herkes için bonus puan çünkü problemlerle karşılaştılar.