14. juni 2005 - 12:20Der 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
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 ?
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
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
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
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"
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)
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
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.