Avatar billede websam Nybegynder
14. juni 2005 - 12:20 Der er 13 kommentarer og
1 løsning

Ideer til nievau opbygning :o)

Hejsa,

Jeg sidder og roder med opbygning af uendelig nieveau'er til et produkt katelog, men kan ikke helt se mig ud af den "perfekte" løsning.

Ideen går på at der oprettes en top kategori, når denne er oprettet skal der ved klik på den kunne oprettes enten en ny kategori eller et produkt. Hvis der så er oprettet et produkt så skal der ikke længere kunne oprettes en kategori under den foregående kategori. Dette er der ikke nogle problemer med.

Det er mere håndteringen af nievauerne ! Jeg prøver at skitsere :

Niveau 1
    Nievau 2
        Niveau 3
            Produkt 1
            Produkt 2
            Produkt 3

Nievau 1-1
    Nievau 2-1
        Produkt 1-1
        Produkt 2-1
        Produkt 3-1

Har i nogle ideer til hvordan jeg styre hvorvidt jeg har 1, 2, 3, eller for den sags skyld 5 Nievauer inden der kommer produkter tilhørende et givent Nievau. Eller rettere sagt hvordan opbygger jeg databasen til dette ?

/Websam
Avatar billede busschou Praktikant
14. juni 2005 - 12:28 #1
Jeg synes de fleste menuer og lignende som er nivau opdelt har de fælles træk at man i databasen har et ID på den aktuelle samt en OverID på den som er over
Alle niveauer hvis OverID = 0 ligger øverst - din skitse kunne så tegnes som
Niveau OverId=0, ID=1
    Nievau OverId=1, ID=2
        Niveau OverId=2 ID=3
            Produkt OverId=3 ID=4
            Produkt OverId=3 ID=5
            Produkt OverId=3 ID=6

Nievau OverId=0 ID=7
    Nievau OverId=7 ID=8
        Produkt OverId=8 ID=9
        Produkt OverId=8 ID=10
        Produkt OverId=8 ID=11
Avatar billede busschou Praktikant
14. juni 2005 - 12:30 #2
Den metode er super dynamisk, i og med kun nivau 0 er fast som øverste niveau, og resten afhænger af hinanden
Det er samtdig oplagt at lave rekursiv søgning, hvis man er til den slags :o)
Problemet med at der ikke må ligge noget under et produkt, det er jo blot at have et felt (flag) i databasen som fortæller om det er et produkt eller ej
Avatar billede websam Nybegynder
14. juni 2005 - 12:36 #3
Det ser ok cool ud, men er ideen så at jeg har én tabel til kategorierne og en til produkterne, for ellers kan jeg ikke helt følge dig ?

/Websam
Avatar billede websam Nybegynder
14. juni 2005 - 12:38 #4
Og hvad mener du med rekursiv søgning ?

/Websam
Avatar billede busschou Praktikant
14. juni 2005 - 12:45 #5
Jeg har kun prøvet til en menu hvor der i princippet kunne være uendelig mange undermenuer. Så der havde jeg kun een tabel med "Id, OverId, Beskrivelse, Link"
Hvis du skal bruge produkterne i andre sammenhænge, så er det måske en fordel at have to tabeller - men umiddelbart ville jeg synes det er mest logisk at have een tabel til sin menu/katalog
Du vil jo altid kunne joine denne tabel med produkt tabellen som så indeholder specifikke oplysninger om produktet
Jeg ville foreslå dig en tabel med "Id, OverId, Type (dvs produkt eller nivau), Link" plus evt mere du har behov for
--
Rekursiv søgning. Hvis du skulle frembringe din menu så skal du først finde dem som har overId = 0. Til hver af deres ID skal du finde alle dem som har samme OverID som deres ID. og til hver af deres igen og igen og igen.
Så først finder du et OverId=0 med ID=1 , så alle dem med OverID=1. Den første har ID=2, så alle som har OverID=2 osv osv
Måske er det svært at illustrere, men pointen er at du fra databasen jo ikke umiddelbart ved hvor mange undermenuer der er og derfor er nød til at "spoole" dem igennem rekursivt, dvs løbe helt ud i enden og så "back tracke"
Avatar billede busschou Praktikant
14. juni 2005 - 12:46 #6
Jeg så så lige først nu at jeg var i asp.net og ikke asp, så jeg tør ikke love det er den smarteste løsning i asp.net
Avatar billede websam Nybegynder
14. juni 2005 - 13:00 #7
asp/.net er der som ikke den store forskel på rent database mæssigt det laves bare på anden måde når der udskrives til en side :o) Så ideen er god nok, jeg prøver mig frem og takker for hjælpen :o)

/Websam
Avatar billede busschou Praktikant
14. juni 2005 - 13:36 #8
det var så lidt da
Smider et svar,,,men kan jo være der kommer andre med andre ideer :o)
Avatar billede websam Nybegynder
14. juni 2005 - 13:39 #9
Ja det er muligt, men ideen er god nok :o)

/Websam
Avatar billede websam Nybegynder
14. juni 2005 - 15:25 #10
En anden ting ! Når du i almindelig asp laver selve visningen på en hvordan trækker du det så ud fra databasen ?

/Websam
Avatar billede websam Nybegynder
14. juni 2005 - 15:32 #11
eller nærmere betegnet hvordan laver du sql-sætningen til den rekursive søgning du omtaler længere oppe ?

/Websam
Avatar billede busschou Praktikant
14. juni 2005 - 15:41 #12
Det simpleste eksempel jeg har er nok det her
http://www.html.dk/scripts/asp/00015/
Avatar billede busschou Praktikant
14. juni 2005 - 15:43 #13
rekursiviteten består ikke så meget i sql sætningen
Rekursivitet betyder vel egentlig at man "kalder" sig selv igen, men det er tydeligt at se af eksemplet.
Og det er netop det som skal til, fordi man hele tiden for hvert felt skal finde alle felter med givne værdier
Avatar billede websam Nybegynder
14. juni 2005 - 16:48 #14
Cool takker :o)

/Websam
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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