Eav

Arkadaşlar Yii’de entity-attribute-value uygulayan oldu mu? Farklı ürün tipleri tutabileceğim bir çözüm arıyorum.

Sorunu daha fazla acarsan yardimci olalim, herbir database field in de farkli veriler tutulabilinir. Normal bir database baglantisi mvc yapisi ile bunu yapabilirsin

Sorun birbirinden farklı niteliklere sahip ürünler var ve bu nitelikler üzerinde yoğun bir şekile arama işlemi yapılacak. En ilkel yolla butün ürünler tek tabloda yüzlerce kolonda tutulur. Diğer yol ise farklı niltelikler için ayrı iki tablo açıp ürün ve nitelikleri eşleştirmek. İkinci yolu Yii’de kullanan oldu mu bunu, tecrübeler neler? Mesela aşağıdaki extension bu işlemi kolaylaştırmak için yazılmış.

http://yiiext.github.com/extensions/eav-behavior/index.html

Benzer bir uygulamada Product modeli olusturup diger modelleri bu model dan inherit etmistik. extension da ki benzer function larla product bilgilerini aliyorduk veya set ediyorduk

"Diğer modellerle" kastetiğiniz her ürün türü için ayrı model midir? Anladığım kadarıyla Product adında bir tane base model var, her farklı ürün türü için sub modeller oluşturuldu.

evet dogru, size kolay gelsin

Veri büyük miktarlarda ve nitelik alanları farklı ise bunu rdbms yerine nosql bir veri tabanı ile de yapmayı düşünebilirsiniz. Örneğin Couchdb gibi bir document storage db bu işi daha iyi halleder gibi.

NoSql de alternatifler arasındaydı. MongoDB’nin dokumanlarına biraz baktım, transactional işlemlerde ve table’lar arasında relation olan durumlarda kullanılmamasını öneriyoruz diyor. E-ticaret sitesi olduğu için her iki nokta da mevcut. Postgre’de table inheritance özelliği de iş göebilir diye düşünüyorum.