11. oktober 2003 - 10:04
Der er
17 kommentarer og 1 løsning
Hensigtsmæssig forumdatabasestruktur
Jeg er ved at lave sturkturen om i et forum og påtænker at lave en stuktur som følgende: TABEL 1: forum_spm id - emne - dato - overskrift - indhold - bruger TABEL 2: forum_svar id - emne - dato - overskrift - indhold - bruger Er det en dårlig måde at strukturere databasen på? Og er der en bedre måde?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
11. oktober 2003 - 10:11
#1
i tabel 1 sløjfer jeg nok emne og bruger istedet id om emne-reference
11. oktober 2003 - 10:18
#2
Da der vel kan være flere svar til et spørgsmål, så vil ID i svar ikke være unik og kan derfor ike bruges som primær nøgle (det er kun en fremmed nøgle osm peger op spm tabellen). Derfor bliver du nok nødt til at lave et ekstra felt i svar til en primær nøgle. Du kan f.eks. omddøbe id til spmid og kalde den nye for id. Helt enig med at emne kun skal være i spm.
11. oktober 2003 - 10:21
#3
tabel 1's id er emnets primær nøgle
11. oktober 2003 - 10:24
#4
Ja men tabel 2 skal jo også have en primær nøgle og en fremmed nøgle som pger på tabel 1's primær nøgle.
11. oktober 2003 - 10:26
#5
hehe, jamen det er jo emnet i tabel 2 :-)
11. oktober 2003 - 10:27
#6
der er fremmed nøgle
11. oktober 2003 - 10:29
#7
Nå... Men nok en dårlig fremmed nøgle. Fordi hvad nu hvis der oprettes 2 spm med samme emne ?
11. oktober 2003 - 10:31
#8
det er der vel ikke noget i vejen for?
11. oktober 2003 - 10:33
#9
jeg er ikke med?
11. oktober 2003 - 10:34
#10
når en bruger opretter et spm tildeles han sit eget id. når en anden bruger svarer på ovenstående spm, sættes hans emne lig ovenstående id.
11. oktober 2003 - 10:47
#11
så tabel 2 emne -> tabel 1 ID ? Det er der ikke nogen problemer med. Jeg finder bare deltnavngivningen lidt misvisende.
11. oktober 2003 - 13:26
#12
hvordan vil du så lave udtrækket?
11. oktober 2003 - 13:28
#13
i forumoversigten over de nyeste indlæg?
11. oktober 2003 - 13:34
#14
så skal man vel sammenligne datoerne i de to tabeller?
11. oktober 2003 - 14:32
#15
Jeg ville lave det som: forum_spm --------- id emne dato overskrift indhold bruger forum_svar ---------- id spmid dato overskrift indhold bruger Nyste spørgsmål: SELECT * FROM forum_spm,forum_svar WHERE forum_spm.id=forum_svar.spmid ORDER BY forum_spm.dato DESC; Nyeste svar: SELECT * FROM forum_spm,forum_svar WHERE forum_spm.id=forum_svar.spmid ORDER BY forum_svar.dato DESC;
11. oktober 2003 - 15:48
#16
det ser godt ud! - hvordan henter du fx forum_spm's værdi $row[id] i ovenstående kode? (har ikke prøvet at arbejde med to udtræk på samme tid)
11. oktober 2003 - 15:57
#17
Ups. Nu er vi vist ovre i PHP. Og jeg kender ikke PHP. Jeg vil formode at det genelt er $row[feltnavn] og at hvis det giver problemer med felter fra forskellige tabeller med samme navn at du så kan bruge SELECT forum_spm.id spm_id, forum_svar svar_id, ... FROM ... WHERE ... og bruge $row[spm_id] og $row[svar_id]. Men det skal du nok have en bekræftigelse på fra en PHP haj.
25. oktober 2003 - 14:05
#18
Tid at lukke spørgsmålet ?
Computerworld tilbyder specialiserede kurser i database-management