Avatar billede KongKurs Juniormester
13. august 2008 - 13:40 Der er 3 kommentarer og
1 løsning

Forskellige kategorier - hvordan?

Hej,

Jeg er ved at lave en auktion og til den ska jeg selvfølgelig bruge nogle kategorier, det er så her problemet opstår. Hvis vi forestiller os at jeg har en menustruktur som flg.:

Kategori 1:
    (under)Kategori 2:
          (under)Kategori 3:
              (under)Kategori 4:

og her er så 3 eksempler på kategorier:

ex. 1) Antikviteter > Møbler
ex. 2) Computer > Kabler/Stik > Printer
ex. 3) Bøger/Blade > Bøger > Ikke fiktion > Programmering

Altså kan en given auktion tilhører en kategori som er > 1 og <= 4 i dybden. Så hvis jeg fx. ville finde ud af hvor mange auktioner der er i kategorien "Bøger" i ex. 3 ovenfor spørger jeg bare til denne kategori, og får herved alle underkategorier hertil. Hvordan skal jeg bygge dette menusystem op i min database(strukturen ikke SQL'en). Det der driller er at en auktion kan være tilmeldt en kategori som kun 2 niveauer i dybden, hvor en anden auktion fx. kan være 4 niveauer i dybden. Hvordan gør jeg dette?

Mvh

Frederik
Avatar billede pidgeot Nybegynder
13. august 2008 - 13:44 #1
Du bør kigge på nested set-modellen. Man kan godt lave hierarkier baseret på en "parent"-struktur, men det bliver svært at lave de ting du gerne vil kunne.

På MySQL's side er der en glimrende artikel om hvordan nested set-modellen fungerer, og hvordan man kan bruge den - der er enkelte MySQL-specifikke ting, såsom AUTO_INCREMENT (der svarer til Identity i MSSQL), men det grundlæggende koncept er det samme for MSSQL:
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
Avatar billede KongKurs Juniormester
13. august 2008 - 15:29 #2
pidgeot> Det var genialt - TAK! :)

Smider du ikke et svar?
Avatar billede pidgeot Nybegynder
13. august 2008 - 15:50 #3
Værsgo :)

SQL 2005 (mener det var der det kom) har også en måde at lave en rekursiv SQL med noget der hedder CTE, men det her er lidt mere portabelt til andre databaser.
Avatar billede KongKurs Juniormester
13. august 2008 - 19:08 #4
CTE... Det vil jeg da lige prøve at se lidt nærmere på... Anyhow, ska da lige kigge lidt mere i Joe Celkos bøger :)

Mange tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester