2016-02-23 25 views
5

Bu kategoriler seçimine dayanarak müşteri bilgilerini almak istediğim bir satış veritabanım var. Yaklaşık 15 kategorim var ve müşteri veritabanım 5 milyon kayıt. Her ürün birden fazla kategoriye girebilir. Seçilen kategoriye göre müşteri adını almam gerekiyor. Tüm bu kategorileri sütunlar olarak koymak veya ürün ve kategori için ayrı bir tablo oluşturmak ve daha sonra iç birleştirme yapmak daha iyi bir yaklaşım mıdır? Performans açısından, hangisinin daha iyi bir yaklaşım olduğunu istiyorum.sütunlu veritabanı

Yaklaşım 1:

option1 burada 1 ürün bu kategori altındaki olduğunu söylüyor.

Yaklaşım 2:

approach2

+1

2 numaralı yaklaşım daha iyidir. Genişletilebilir, yaklaşım kategorisinde yeni kategoriler alırsanız, tablo yapısını değiştirmelisiniz. İlişkisel olarak da uygun. Ve tabloyu, yaklaşma 1 ile yaklaşım, alabilirsiniz. – gofr1

+0

Teşekkürler gofr1. Ama benim problemim performans. 5 milyon kayıt olması sorun olmayacak mı? – aditya

+0

@aditya, no. SQL Server, özellikle doğru dizin ile "JOIN" etkin bir şekilde işler. –

cevap

2

İkinci Yaklaşım (Approach 2) çok daha iyi bir çözüm yerine, her ürün, ayırma edilir bir yaklaşımla tüm kategorileri olabileceğini gerekli değildir çünkü tek bir tablo yaratıyor kategori var olsa da olmasa bile ayrı sütunlar oluşturarak alan ve ne olursa olsun bir kategorinin artması durumunda tablonun mevcut yapısını değiştirmek zorunda kalacaksınız ve bu zor bir görev olacaktır.

Evet Katılmak biraz yavaş olacak ancak dizini düzgün bir şekilde oluşturursanız çok daha iyi performans gösterecektir.