[ kelja @ 12.06.2007. 11:37 ] @
Pozdrav,

evo prvi put se srecem sa ovakvim zahtevom...

U pitanju je obican online store skript.

Da vam bude jasnije, mozete videti kako to izgleda 'u akciji' ovde:

http://www.lifedynamix.com/teststore/

Struktura baze je jednostavna : jedna tabela za kategorije, jedna za subkategorije, jedna za subsubkategorije i jedna za proizvode.(sve su povezane ID-ovima i to je lepo funkcionisalo sve do sada)

Sad se javljaju problemi. Vlasnik sajta bi hteo da ima mogucnost da jedan proizvod svrsta u vise kategorija(odnosno sub i subsub kategorija)
On je to i uradio, stavio je iste proizvode, sa potpuno istim podacima u vise kategorija...
Naravno, pri svakom unosu proizvod je dobijao jedinstveni ID...

To samo po sebi i nije tako strasno, ali izaziva nevolje pri search-u (DISTINCT ne pomaze, probao sam, ID je razlicit,a cak i kad iz SELECT query-ja izbacim ID, nisam dobio dobre rezultate, odnosno isti proizvodi se ponavljaju) , a takodje i jos u nekim situacijama mi to stvara probleme...

E sad, moje pitanja:
Kako uopste srediti ovu situaciju?
Da li 'krpiti'(probao sam, ali nije islo)?
Da li potpuno/delimicno izmeniti strukturu baze?
Ovo pitanje je povezano sa prethodnim:Ima li smisla unositi isti proizvod vise puta(i da pri tome dobija jedinstveni ID) , ako se SAMO javlja u vise kategorija, a isti je proizvod u pitanju (klijent bi, logicno, to zeleo da resi jednim klikom)...

Eto, ako ste imali slicna iskustva/probleme, molim vas pomozite.
[ broker @ 12.06.2007. 11:47 ] @
Treba da promenis strukturu baze.

Uvedi dodatnu tabelu koja ce imati polja ID_KATEGORIJE i ID_PROIZVODA i u nju upisi svaki par proizvod-kategorija. Tkao ces moci da isti proizvod ubacis u neogranicen broj kategorija.
[ dakipro @ 12.06.2007. 11:55 ] @
Mogo bi da ga pokrpis, al ti dodje na isto. Bolje ko sto broker kaze, prepravi strukturu baze na n-n (vise na vise) vezu. I da znas za sledeci put, obavezno dobro utvrdi sa klijentom kakva je povezanost itema i kategorije i da li ce doci do izmene, da odma projektujes bazu kako treba. Odma mu i napomeni da bi ga eventualna promena kostala prilicno jer sad moras sve zivo da opravljas. Nije nista strasno ali gubis vreme.
[ centaur @ 12.06.2007. 12:40 ] @
n:n tabela je jedino pravo resenje.

E sada ako vec menjas strukturu mozes da razmislis i o sledecem:
Ti si za svaku podkategoriju pravio posebnu tabelu što te ograničava u smislu dubine kategorija i podkategorija.
Sve kategorije i podkategorije mozes da stavis i u jednu tabelu.
Uveo bi novo polje (npr parent_id), koje bi popunjavao sa id-em "roditeljske" kategorije ukoliko ga ima.
Na taj nacin bi izbegao limite koje imaš pri tvojoj trenutnoj strukturi baze.



[ kelja @ 12.06.2007. 13:04 ] @
Hvala vam, ljudi , ostaje mi da se bacim na posao!

@centaur,
u pravu si ,to je u sustini dosta limitirana struktura, ako me ne bude mrzelo, mozda cu i to da promenim.

Pozdrav svima!
[ dakipro @ 12.06.2007. 13:16 ] @
Evo ti link:
http://www.elitesecurity.org/t...tree-like-izlistavanje-iz-baze