Jar en tabell med produkter och en med kategorier. I kategoritabellen har jag ett fält som heter visa. Om den är satt till 1 skall produkter visas på en sida där man söker ut produkter. Är den satt till 0 skall såklart inte produkten visas. Min produktsökning som jag har idag ser ut så här:
SELECT * FROM varor Where visa=1 and (kat1<>0 or tkat1<>0 or kat2<>0 or tkat2<>0 or kat3<>0 or tkat3<>0) and (huvudprodukt like '%$term%' or produkt like '%$term%' or beskrivning like '%$term%')
Kategori Tabellen:
kategorier
- kategori - namn
- katID - tal unikt id
- tkatID - 0 vid huvudkategori, annars katID så man vet vilken kategori den hör till
- visa - 1= visa, 0=dölj
varor:
prodID - unikt id
huvudprodukt - text
produkt - text
beskrivning - text
visa - tal
kat1 - tal
tkat1 - tal
kat2 - tal
tkat2 - tal
kat3 - tal
tkat3 - tal
Man skall kunna välja tre kategorier till varje produkt. kat är kategorins id och sen tkat är kat´s överkategori. Därav denna: kat1<>0 or tkat1<>0 or kat2<>0 or tkat2<>0 or kat3<>0 or tkat3<>0
Hur tänker du nu? Kan du förklara hur kopplingstabellen skall se ut?
En produkt kan ligga under 3 olika kategorier. Nu har jag en sida där jag söker produkter och jag tänkte göra om så att man kan välja att en kategori är aktiv eller inte. Så om det skulle vara att kategorierna är inaktiva skall ej produkten visas.
Men det kanske är smartare att göra som du menar men som sagt, hur skall det se ut och hur hämtar man det då?
En bättre struktur är att ha en tabell "product_category" med två kolumner. Ena kolumnen "product" och andra "category". På så vis kan man koppla en produkt till hur många kategorier man vill. Lägg primary key över båda kolumnerna så slipper du dubletter.
Okej, skall kika på hur enkelt det blir att göra om detta nu när jag har allt klart. Men hur hämtar man sen då om man har aktiv och inte aktiv i en kategori?!