[ Thugzsr @ 30.10.2012. 15:54 ] @
Pozdrav ljudi, radim internet prodavnicu, i sad imam bazu sa tabelama proizvodi, brend i kategorije (proizvoda) e sad problem je sto imam nekoliko kategorija i podkategorija koje se razgranjuju i ne mogu biti u tabeli kategorije jer imam 3 velike kategorije proizvoda koje se razgranjuju...
npr sportska oprema, odeca i obuca su glavne podele, sportska oprema se deli na npr lopte, boks opremu, stoni tenis i sl, i onda se npr lopte granaju na fudbalske, odbojkaske, vatrpolo i sl, tako i boks i stoni tenis...i sad ne znam kako da razvrstam u bazi te podele? u tabeli kategorije bi bile krajnje kategorije, a sta sa prethodnim?
Nadam se da je razumljivo :) Unapred zahvalan...
[ miksi @ 30.10.2012. 22:03 ] @
Nedaj bože da imaš onoliko tabela koliko i kategorija i potkategorija, štagod :)) Jedno od rešenja bi bilo da : sve posmatraš kao strukturu stabla koja ima onoliko korena koliko imaš početnih kategorija. Npr:

parentNode Node
=============================
null sportska oprema
sportska oprema lopte
sportska oprema boks opremu
sportska oprema stoni tenis

null odeca
odeca zenska
odeca muska
odeca decja

.....

Sve to u istoj tabeli ili xml fajlu, zavisi kakvu bazu koristiš. Evo ti primera, ako radis u MS SQL-u, gde je vrednost za parentNode za osnovne kategorije - null.

USE [imeBaze]

CREATE TABLE [dbo].[ProductCategory](
[ProductCategoryID] [int] IDENTITY(1,1) NOT NULL,
[ProductCategoryName] [nvarchar](max) NOT NULL,
[ProductCategoryParent] [int] NULL CONSTRAINT [DF_ProductCategory_ProdutCategoryParent] DEFAULT (NULL),
CONSTRAINT [PK_ProductCategory] PRIMARY KEY CLUSTERED
(
[ProductCategoryID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
[ Thugzsr @ 30.10.2012. 22:37 ] @
Mislio sam da sam napisao da je mysql baza u pitanju! :) pojma nemam kako bih to izveo, zato i pitah ovde :) zna li neko kako to ozbiljniji sajtovi sa slicnim problemom resavaju?
[ bogdan.kecman @ 30.10.2012. 23:26 ] @
treba ti tabela sa "objektima" (artiklima, zovi ih kako oces)

object_id
object_name
object_description
object_kukuriku
object_stagod
object_nesto drugo
object_nesto trece
...

onda imas tabelu object_type koja ti definise kojim tipovima pripada objekat. nemoj da pravis klasicnu gresku da ti jedan objekat pripada samo jednom tipu (kategoriji) posto ces posle da se ceses (npr patike spadaju u obucu i u sportske artikle za trcanje)

object_id
type_id

i na kraju imas tabelu sa tipovima (kateogorijama)

type_id
type_name
type_description
type_left_id
type_right_id

pogledaj ovde za razumevanje strukture type tabele (ona je klasicna hijerarhijska tabela modelirana po nested set modelu)

ako je u pitanju prodavnica onda eventualno hoces da imas jos jednu tabelu koja bi bila object_price u kojoj imas istoriju cene tog proizvoda (trenutna validna cena je najveci valid_from <= now() )

object_id
price
valid_from

jasno?