Ben EAV modelini kullanmalı mıyım?

0 Cevap php

Ben bir e-ticaret uygulaması için benim veritabanı / domain tasarlama ve ben ürünlerini saklamak için nasıl bulmaktan zor bir zaman yaşıyorum.

Web sitesi ürünleri, kalem, kayış, dövmeler, şemsiye, her şeyi geniş bir yelpazede satacak. Bu ürünün her birkaç ortak özelliklerini paylaşacak, yükseklik, genişlik, uzunluk, ağırlık, vb ama bazı ürünler özel veriler var. Örneğin kalem farklı mürekkep renkleri var ve ipuçları / kapaklar ve broşürler kıvrımların farklı olabilir. Şimdiye kadar yaklaşık 20 + ekstra özelliklerini kadar düşündüm, ancak bu özellikler sadece web sitesinde ürünlerin% 1 için geçerli olabilir.

Bu ekstra veriyi işlemek için bir EAV modeli uygulamak için uygun olup olmadığını bu yüzden merak ediyorum. Müşterilerin Önyüzde siteyi görüntülerken, eBay ve carsales.com.au üzerinde gibi bir filtreleme kenar çubuğu olacağı akılda tutulması. (Yani akılda tutarak sorgulama adil biraz orada olacak)

Ben bu sistemi esnek kalması gerekiyor gibi sınıf Tablo devralma uygulamak için pratik olduğunu sanmıyorum. Parça aşağı biz yeni ürün türleri ile gelecekte daha fazla özelliklere sahip olabilir, çünkü bu.

Ben kabul başka bir şey bile benim sorunu çözecek ancak ben, veritabanları bu tür çok az deneyime sahip bir NoSQL veritabanı (muhtemelen MongoDB) kullanıyor?

Seçeneklerin İnceleme:

  1. Kolonlarla dolu tek ürünler varlık
  2. Ayrı nitelikler varlık (EAV)
  3. Şema daha az sebat Switch

Ben ne kadar esnek olduğunu görmek için bir nitelikler varlık ile bir prototip bina ve sorgulama kontrolden çıkar performansını ve nasıl test sürecinde yaşıyorum.

EDIT: Ben, tabii, başka çözümlere açığım.

0 Cevap