Magazin Online - detalii produse - o idee salvatoare ?

Discuţii despre accesabilitate, interfaţa cu utilizatorul,stil de programare, tehnici, algoritmi, managementul proiectului,probleme legate de afişarea în diverse browsere.

Moderator: Moderatori

pufos_carol
PHPRomania Supporter
Mesaje: 6
Membru din: Sâm Mai 05, 2007 12:00 am
Localitate: Pitesti
Contact:

Magazin Online - detalii produse - o idee salvatoare ?

Mesajde pufos_carol » Mar Aug 09, 2011 5:26 pm

Salutare la toata lumea,

Imi cer scuze pentru ca am mai postat acest mesaj in sectiunea de Comert electronic si dupa aceea am vazut sectiunea Dezvoltare.

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



Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Mar Aug 09, 2011 6:37 pm

e ok metoda ta doar ca mai vin cu o adaugare... la specificatii mai fa un camp pentru specificatie obligatorie sau nu ... deci o sa ai produse la care anumite specificatii trebuie sa fie introduse obligatoriu altfel nu se afiseaza produsul (de exemplu la procesor trebuie specificata frecventa, la laptop marca etc)

si le pui tip tinyint de 1 si e de ajuns de optimizat (mai putin la campul de specificatii unde pui varchar sau text)

la atribute ar trebui sa le legi cu categoria pentru ca poti avea acelasi nume de atribut la mai multe categorii dar la unele sa fie obligatoriu la altele nu (exemplu laptopuri, desktop pc, netbook toate au hdd si trebuie sa specifici hdd la ce categorie ca mai sunt si accesorii...?)

in ce priveste treaba cu optimizarea, pentru asta exista cache (memcache) generezi pagina cu produsul si o bagi in cache, stergi din cache doar daca editezi acea pagina /produs si apoi recreezi cache...
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

pufos_carol
PHPRomania Supporter
Mesaje: 6
Membru din: Sâm Mai 05, 2007 12:00 am
Localitate: Pitesti
Contact:

memcache

Mesajde pufos_carol » Mar Aug 09, 2011 9:33 pm

salut, multumesc de raspuns ... cum se face treaba cu cache practic .. nu am incercat niciodata si nu am apucat sa ma documentez. poti sa imi indici vreun tutorial sau o metoda simpla .

Legat de , legatura dintre atribut si categorii o sa fie atributele pe grupuri si o sa fac o tabela de playlist in care sa se salveze valorile pentru a fi atribuite si altor produse ...

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Mar Aug 09, 2011 11:38 pm

in ce priveste cache la pagini, o varianta ar fi sa generezi pagini statice pe care sa le salvezi intr-un director si apoi sa le afisezi (nu trebuie sa fie toata pagina ci doar partea cu produsul pe care sa o incluzi apoi in cms-ul tau)
o poti salva cu un nume specific in asa fel incat sa dai de ea in cazul in care se editeaza acel produs si i se modifica valorile sa poti identifica pagina sa o regenerezi...
(un echivalent cu acest site ar fi partea de sus cu meniurile aia se poate genera static ca un fisier html si sa se includa peste tot apoi restul - formul - din bd)

in ce priveste memcache nu e cine stie ce dar pentru inceput uite un punct de pornire aici
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.


Înapoi la “Dezvoltare”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 22 vizitatori