Živjo,
malo za razmislek in za kakšno idejo/nasvet odpiram tole temo.
Spletnih trgovin je že veliko, zato delam jaz še eno :)
Funkcjonalnosti:
- večjezičnost,
- izdelek v več kategoirjah (ena kategorija je privzeta za breadcrumbse)
- proizvajalci
- opcije(atributi) izdelka, npr barva, velikost,....
- filtriranje izdelkov po kategorijah in iskanje glede na atribute
- različna cena, zaloga,.. glede na izbrano kombinacijo opcij
Tukaj je čisto osnovna, prva in precej okleščena verzija, kako naj bi baza zgledala. http://shrani.si/f/R/oZ/w2Jzqn5/capture.png
Primer podatkov:
product(artikel)
product2attribute(productid, attributeid, attributevalueid)
attribute(barva, velikost,..)
attribute_value(rdeca,rumena,S,M,L,XL,...)
Par zelo pomembni stvari, ki v tej shemi manjka:
- cena
- zaloga
- serijska št.
ob izbranih opcijah.
Vprašanje pa sledi:
Kako bi zapisali ceno, glede na to, da se lahko razlikuje glede na izbrano kombinacijo opcij.
Primer:
majica v rdeči barvi S = 9€
majica v zlati barvi S = 9€
majica v rdeči barvi M = 10€
majica v zlati barvi M = 15€
Torej, izbrana opcija ne more vedno povečati za fiksni ali procentualni znesek osnovne cene artikla.
Podobno vprašanje je, kako zapisati zalogo in serijske št. glede na izbrano kombinacijo večih opcij.
Edina ideja, ki mi pade na pamet je tabela vseh možnih permutacij pri urejanju vsakega artikla.
Primer:
velikost; barva; cena; serial; zaloga
S; rdeca; 9€; 123; 2
S; zlata; 9€; 123z; 0
M; rdeca; 10€; 1234; 0
M; zlata; 15€; 1234z; 3
Se spomni kdo kakšne drugačne rešitve?
Bi drugače zastavili bazo?
Bi bilo bolje vsako kombinacijo opcij zapisati kot svoj artikel z nekim parent_id-jem 'master' izdelka?
Vseh nasvetov in komentarjev bom zelovesel :)
edit:
zdaj ko sem še 1x prebral, se mi zdi najbolje zalogo in ceno zapisati v tabelo 'product' in vse artikle grupirati po polju 'model'... v tabelo 'product' pa dodati še eno polje za privzeto prikazani artikel.
Res je fajn toplo vodo odkrivat :D