Avatar billede ulrikp Nybegynder
07. december 2002 - 21:43 Der er 6 kommentarer

"Dynamisk" relation

Jeg er ved at lave et website, hvor menupunkter/navigation og de tilhørende sider er gemt i en access database. Menuen består af 3 niveauer - derfor har jeg 3 tabeller: MENU_NIV1, MENU_NIV2 og MENU_NIV3.
De enkelte punkter i niv3-tabellen er knyttet til ét niv2-punkt, som igen er knyttet til ét niv1-punkt.
Mit problem er, hvordan jeg skal relatere den 4. tabel, PAGE, til MENU-tabellerne. Jeg vil gerne have det sådan, at en side (en forekomst i tabellen PAGE) kan være relateret til flere menupunkter i flere niveauer, men omvendt skal det også kunne lade sig gøre, at en side, kun er relateret til ét menupunkt, d.v.s. enten en forekomst i MENU_NIV1, 2 eller 3.
Hvordan tackler jeg det?
Avatar billede frederikschack Nybegynder
08. december 2002 - 20:51 #1
Det ved jeg ikke, men lad være med at bruge Access, det vil ikke give dig andet end problemer. Hosts der hoster ASP er mere ustabile og dyrere.

Jeg har lige lært PHP/MySQL og det er virkeligt en fornøjelse i forhold til ASP/Access, der er ingen tvivl om hvad der er lettest og mest stabilt.

Du kan få en webside af mig i PHP, med et script der opretter sig næsten af sig selv. Se evt. et eksempel på www.isme.dk (bruger den som baggrund i XP). www.fynssocialeforum.dk er nøjagtigt den samme side, bare med et andet indhold i databasen og lidt anden baggrunds grafik, ellers nøjagtig samme programmering.

Mvh
Frederik
Avatar billede frederikschack Nybegynder
08. december 2002 - 20:55 #2
Du kan somsagt få siden af mig, og så vil jeg evt. foreslå b-one.dk (hoster kun MySQL databaser), de er billige og virker seriøse. Der har været nogle små problemer ved overgangen til ny MySQL server, men for det har de givet en ekstra måneds abbonnement.
Avatar billede hekla Nybegynder
08. december 2002 - 21:02 #3
Er det ikke et spørsmål om at lave det link til siderne fra et eller flere menupunkter (evt i menu-tabellerne)??? Tabellen med sider behøver vel ikke at være relateret til menu-tabellen i Access.
Avatar billede ulrikp Nybegynder
08. december 2002 - 23:41 #4
Frederikschack: Tak for dine kommentarer... jeg havde dog håbet på et brugbart svar på mit problem i stedet for en gang "salgsgas" om PHP/MySQL (-:

Hekla: Jeg synes ikke det er nogen god idé at have linksene til siderne i menutabellere for med til historien hører, at hvert enkelt menupunkt (og dem er der ca. 50 af) kan bruge ca. 5 forskellige templates, hvoraf nogle flettes sammen med noget HTML fra en anden tabel i databasen. Det er bl.a. for at undgå redundans og uoverskuelighed, at jeg har valgt at separere menupunkter og sider... Jeg synes selv, jeg har fået lavet et fornuftigt EE/R-diagram, mit problem er bare lige at få relateret denne aggregering (som de 3 menutabeller jo sådan set er) til bl.a. PAGE-tabellen... Det må kunne lade sig gøre - jeg gi'r ikke op (-:
Avatar billede nih Novice
15. december 2002 - 23:43 #5
Hej

Jeg har en menutabel: tblNode(NodeId, parrentId, tittle, sortering)
Nodeid er autonummer og parrentid peger på nodeid som den hører under. (parrentId = 0 -> rod)
min kode er DAO: en rekursiv procedure der udskriver niveau, nodeid og tittle:

Option Compare Database
Sub test()
    Call loadmenu(0, 0)
End Sub

Private Sub loadmenu(sId, level)
    Dim rs As Object
    Dim sql

    'er der flere ???
   
    If IsNull(sId) Then
        Exit Sub
    End If

    sql = "select * from tblNode where parrentid=" & sId & " ORDER BY sortering"
    Set rs = CurrentDb().OpenRecordset(sql)
   
    Do While Not rs.EOF

        Debug.Print level & "  " & rs("nodeid") & "  " & rs("title")
       
        Call loadmenu(rs("nodeid"), level + 1)
        rs.MoveNext
    Loop
   
    If Not rs Is Nothing Then
        rs.Close
    End If
    Set rs = Nothing
End Sub

herefter er det bare en tabel med nodeid, pageId til at relatere dib records fra pagetabellen til din nodeid i menuen.

håber du selv kan oversætte til ASP.
Niels
Avatar billede ulrikp Nybegynder
16. december 2002 - 13:20 #6
nih: Jeg fandt ud af at løse det præcis på den måde, som du beskriver, men tak for hjælpen...
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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