Pogledajte određenu poruku
Staro 27. 05. 2008.   #1
misko_
profesionalac
Qualified
 
Datum učlanjenja: 22.09.2007
Lokacija: Split
Poruke: 111
Hvala: 8
39 "Hvala" u 10 poruka
misko_ is on a distinguished road
Question Koji je dizajn baze najbolji, za kategorije koje su u parent-N-child vezi?

Cao,

Imam nešto ovako.
Postoji tablica lokacije, u kojoj su premljene informacije o lokacijama(naziv, adresa, kordinate itd).
Svaka lokacija može biti vezana sa 0 ili više kategorija(ovo je tipična NxN veza i to mi nije problem).
Problem mi je malo kod kategorija. Nazivi kategorija su npr. smještaj, hotel , kuća, 4zvjezdice, 3 zvjezdice, 2 zcjezdice, banke, bankomati, rent, skuter, auto.
Naravno postoji i logicka veza izmedu pojedinih kategorija.
Kôd:
Smještaj
    Hotel
        4 zvjezdce
        3 zvjezdce
        2 zvjezdce
Banke
    Bankomati
Rent
    Auto
    Skuter 
    Brod
Imam oko 100 kategorija, ovo je samo pojednostavljeni primjer.

Znaci postoje root kategorije, što je u ovom primjeru, Smještaj Banke i Rent.
Samo su sa zadnjom kategorijom vezane lokacije, znači lokacija može biti vezana za 4 zvjezdce, 3 zvjezdce, 2 zvjezdce, Bankomati, Auto, Skuter, Brod.
A između root kategorije i zadnje kategorije, može biti N pod kategorija.

Meni trenutno kategorije u bazi funkcioniraju na sljedeci nacin. Postoji tablica Kategorije i ona ima 2 polja, Id i naziv.
Problem ovoga je sto u bazi nemam nikakvu vezu oko toga kako su povezane kategorije, ta logika mi je hard-codirana u preko 100 fajlova i skoro toliko isto direktorija, kako smo dosli do toga ne bi o tome

Ja imam par ideja kako da to pojednostavim, pa me zanimaju tuđa mišljena, po mogučnosti bih htio naci neki srebreni metak za ovakav problem.

IDEJA 1.
Da napravim konfiguraciski fajl, xml, u kojem bi mi bile veze između kategorije, nešto tipa
Kôd:
<root>
<kategorija>
<id>45<id> #ovo bi mi bio id iz baze
<naziv>Smještaj<naziv>
<pod_kategorija>
    <kategorija>
    <id>80<id> 
    <naziv>Hotel<naziv>
    <kategorija>
        <pod_kategorija>
        <kategorija>
        <id>42<id>
        <naziv>4 zvjezdce<naziv>
        <kategorija>
        <kategorija>
        <id>41<id>
        <naziv>3 zvjezdce<naziv>
        <kategorija>
        <kategorija>
        <id>43<id> 
        <naziv>2 zvjezdce<naziv>
        <kategorija>
        <pod_kategorija>
<pod_kategorija>
<kategorija>
Prednost:
Na ovaj nacin bi mi cijela logika bila u jednom fajlu.
Nedostatak:
Ako se doda nova kategorija, moralo bi se ručno prepraviti taj xml fajl.

IDEJA 2.
Prosiriti tablicu kategorije sa:
moze_imati_lokacije (DA/NE)
njegova_nad_kategorija(id on nad kategorije ili N/A)

Prednost:
U bazi bi mi bila logika, kako su kategorije vezane.
Nedostatak:
Nešto mi govori da ovo baš nije način na koji se baze trebaju koristi.
Morao bih napisati neku klasu koja bi prosla kroz cijelu tablicu kategorije i napravilia takvu strukturu u memoriji.

IDEJA 3.
na napravim više tablice tipa: root_kategorija, pod_kategorija1, pod_kategorija2, pod_kategorija3, do jedno 4 ili 5, ne mislim da ce više biti.
Prednost:
Ne vidim nikoju. Ova mi se ideja ne sviđa. možda samo osobno mišljenje.

Kada sada malo razmislim, možda je moje pitanje najbolje preformulirati i postaviti ga na način: Kako se struktura stabla(tree) sprema u bazu ?

Ako ste sve oko procitali, hvala vam na trudu, ako i niste svejedno hvala na pomoci...
misko_ je offline   Odgovorite uz citat