Salutare la toata lumea,
Lucrez la un magazin online si am dat peste o problema urata.
Clientul vrea sa isi gestioneze sabloanele pentru delatiile (specificatiile) produselor.
A mai facut cineva vreun magazin online sau se pricepe ?
Momentan m-am oprit la o metoda ...
1. Sa creez o tabela in baza de date unde sa stochez sabloanele unei categorii de produse :
attribute(1, 'Manufacturer')
attribute(2, 'Cost')
attribute(3, 'GSM standards')
attribute(4, 'Hard Disk capacity')
apoi sa am o tabela unde inserez produsele (si cam tot ce au ele in comun - culori disponibile .. etc - orice in afata de specificatii ...)
tabela de categorii:
category(1,'Computers')
category(2,'Cell Phones')
tabela produse:
product(1, 'iMac', category = 1)
product(2, 'iPhone', category = 2)
si o tabela unde sa fie stocate toate specificatiile la toate produsele :
product_attribute(product_id=1, category_attribute_id=1, 'Apple')
product_attribute(product_id=1, category_attribute_id=2, '$300')
product_attribute(product_id=1, category_attribute_id=4, '500Gb')
product_attribute(product_id=2, category_attribute_id=1, 'Apple')
product_attribute(product_id=2, category_attribute_id=2, '$200')
product_attribute(product_id=2, category_attribute_id=3, 'GSM 900/1800/1900')
si eventual o tabela in care sa fie linkate atributele de categorii :
category_attribute(id=1,category=1,attribute==1)
category_attribute(id=2,category=1,attribute==2)
category_attribute(id=3,category=1,attribute==4)
category_attribute(id=4,category=2,attribute==1)
category_attribute(id=5,category=2,attribute==2)
category_attribute(id=6,category=2,attribute==3)
si un select pentru categoria 1 sa afiseze toate atributele (acum este facuta pentru toata categoria dar pot pentru fiecare produs)
select * from attributes a join category_attribute ca on ca.attribute_id = c.id join category c on c.id = ca.category_id where c.id = 1
Intrebarea mea este :
Este o metoda fiabila ? Este o metoda utilizata ? Mai exista si alte metode mai bune ? Pentru ca la 10000+ de produse in tabela product_attribute vor fi cam 1 milion de linii si nu stiu cat de optim se descurca mysql cu atatea linii (in cazul in care trebuie sa selecteze mai multe linii)
A mai realizat cineva ceva asemanator ? O idee ceva ? Nu vreau sa imi dai tot codul dar o idee noua de implementare care sa reduca numarul de linii in acea tabela , dar sa fie la fel de eficienta la gestionarea sabloanelor pentru produse .
O zi buna
Magazin Online - detalii produse - HELP
Moderatori: Zamolxe, Moderatori
-
- PHPRomania Supporter
- Mesaje: 6
- Membru din: Sâm Mai 05, 2007 12:00 am
- Localitate: Pitesti
- Contact:
-
- Average Member
- Mesaje: 107
- Membru din: Vin Dec 25, 2009 1:11 am
- Localitate: Iasi
-
- PHPRomania Supporter
- Mesaje: 6
- Membru din: Sâm Mai 05, 2007 12:00 am
- Localitate: Pitesti
- Contact:
suuper
super tare .. mersi mult de raspuns ... practic la cum vreau sa implementez este tot un model EAV ... nu ? super .. EAV era exact ce cautam ... nu am auzit pana acum ...
-
- Average Member
- Mesaje: 107
- Membru din: Vin Dec 25, 2009 1:11 am
- Localitate: Iasi
-
- PHPRomania Supporter
- Mesaje: 6
- Membru din: Sâm Mai 05, 2007 12:00 am
- Localitate: Pitesti
- Contact:
online shop
dar nu exista o metoda de compromis .. care sa fie atat flexibila dar sa aduca si un plus de performanta ? toate osc-urile mari sunt bazate pe modelul EAV ?
-
- Average Member
- Mesaje: 107
- Membru din: Vin Dec 25, 2009 1:11 am
- Localitate: Iasi
Compromisul il alegi de comun acord cu clientul. Nu cunosc decat magento care implementeaza modelul EAV si care iti ofera o flexibilitate foarte mare dar pierde mult pe partea de performanta. Magento insa castiga la capitolul performanta prin a face cache la collectiile de obiecte aduse din baza de date, si nu numai, si se face refresh la cache doar cand se modifica baza de date.
-
- Senior Member
- Mesaje: 1264
- Membru din: Mar Iun 22, 2010 3:17 pm
-
- PHPRomania Supporter
- Mesaje: 6
- Membru din: Sâm Mai 05, 2007 12:00 am
- Localitate: Pitesti
- Contact:
eav model
Deci practic e destul de trist ca sa folosesti modeul eav ? @nevermind atunci ai vreo propunere ? stii cumva ceva mai bun ? @catalin.ciobanu zi-mi si mie unde pot citi ceva despre cum se face acest cache ? ar fi super ... multumesc mult
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 2 vizitatori