Avatar billede steen_hansen Forsker
26. december 2006 - 15:49 Der er 1 løsning

Hensigtsmæssig databasestruktur og SQL-forespørgsler?

Jeg er i gang at lave en side, hvor jeg skal lægge billeder på (ASPImage). Men inden vil jeg gerne have databasestrukturen på plads til menuerne/sitemap, så jeg undgår at skulle lave det hele om midt i processen (er allerede gjort én gang). Så jeg har tænkt mig at oprette 3 tabeller i MySQL: 1. mainarea - 2. topcat - 3. subcat.

1. mainarea skal bruges til menugruppe, som f.eks. "Din profil" eller "Debatforum" eller "Billeder" el.lign.

2. Hver menugruppe har hovedmenuer, som f.eks. "Om ...." eller "Kontakt os" eller "Debat" etc.

3. Nogle af hovedmenuer har så undermenuer, som f.eks. "Opret nyt debatemne" eller "Se alle debatemner" etc.

Her er den tiltænkte menustruktur, som vi alle kender:



Menupunkt 1
    Hovedmenu 1.1
    Hovedmenu 1.2
        Undermenu 1.2.1
    Hovedmenu 1.3
    Hovedmenu 1.4
        Undermenu 1.4.1
        Undermenu 1.4.2
        Undermenu 1.4.3
    Hovedmenu 1.5
    Hovedmenu 1.6

Menupunkt 2
    Hovedmenu 2.1
    Hovedmenu 2.2
        Undermenu 2.2.1
        Undermenu 2.2.2
        Undermenu 2.2.3
        Undermenu 2.2.4
    Hovedmenu 2.3
        Undermenu 2.3.1
    Hovedmenu 2.4



De skal så trækkes ud gennem en løkke (Do Until RS.EOF .... Loop), så der kan laves menu/sitemap:



Menupunkt 1
    <a href=”#”>Hovedmenu 1.1</a>
    <a href=”#”>Hovedmenu 1.2</a>
        <a href=”#”>Undermenu 1.2.1</a>
    <a href=”#”>Hovedmenu 1.3</a>
    <a href=”#”>Hovedmenu 1.4</a>
        <a href=”#”>Undermenu 1.4.1</a>
        <a href=”#”>Undermenu 1.4.2</a>
        <a href=”#”>Undermenu 1.4.3</a>
    <a href=”#”>Hovedmenu 1.5</a>
    <a href=”#”>Hovedmenu 1.6</a>

Menupunkt 2
    <a href=”#”>Hovedmenu 2.1</a>
    <a href=”#”>Hovedmenu 2.2</a>
        <a href=”#”>Undermenu 2.2.1</a>
        <a href=”#”>Undermenu 2.2.2</a>
        <a href=”#”>Undermenu 2.2.3</a>
        <a href=”#”>Undermenu 2.2.4</a>
    <a href=”#”>Hovedmenu 2.3</a>
        <a href=”#”>Undermenu 2.3.1</a>
    <a href=”#”>Hovedmenu 2.4</a>




Og til det havde jeg tænkt mig at bruge 3 tabeller i databasen (jeg ved ikke om tabuleringer kommer til at stå ordentligt):



Menupunkt:
ssmainareaID        (ID på mainarea)
ssordermainareaby        (Sorteringsorden på mainarea)
ssmainareatitle        (Titel på mainarea)
ssmainareadescription    (Beskrivelse af mainarea)
ssmainareaurl        (Link til mainarea)
ssmainareapicurl        (Link til mappe med billeder)

Hovedmenu:
sstopcatID        (ID på topkategori)
sstopcatattachtomainarea    (Knyt topkategori til mainarea)
sstopcatorderby        (Sorteringsorden på topkategori)
sstopcattitle        (Titel på topkategori)
sstopcatdescription        (Beskrivelse af topkategori)
sstopcatdocurl        (Link til dokument, hvor data trækkes ud af DB)
sstopcatpicurl        (Link til mappe med billeder)


Undermenu:
sssubcatID        (ID på underkategori)
sssubcatattachtotopcat    (Knyt underkategori til topkategori)
ssordersubcatby        (Sorteringsorden på underkategorier)
sssubcattitle        (Titel på underkategori)
sssubcatdescription        (Beskrivelse af underkategori)
sssubcatdocurl        (Link til dokument, hvor data trækkes ud af DB)
sssubcatpicurl        (Link til mappe med billeder)



Og det hele skal så trækkes gennem løkken, så der er disse relationer (håber det kommer til at stå ordentligt):



ssmainareaID    <->    sstopcatattachtomainarea    <->    sssubcatattachtotopcat
ssmainareatitle        sstopcattitle            ssordersubcatby
ssordermainareaby        sstopcatdocurl            sssubcattitle
            sstopcatpicurl            sssubcatdocurl
                            sssubcatpicurl


Jeg kunne godt tænke mig at høre din mening. Er det hensigtsmæssigt at lave det på denne måde, eller er der en meget bedre måde?
Avatar billede steen_hansen Forsker
06. januar 2007 - 21:02 #1
Lukker
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
Kurser inden for grundlæggende programmering

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