Avatar billede alta Nybegynder
31. maj 2003 - 17:35 Der er 4 kommentarer og
1 løsning

Hjælp til joinsyntaks og db-design ønskes

Jeg har lavet et debatforum til min klasse og er straks blevet spurgt, om nogle af de andre klasser og kan få deres eget forum.

Er der nogen der har en god ide til, hvordan jeg kan skalere mit forum? Lige nu logger man bare ind med alias og kode, men kan sortere brugerne på en fornuftig måde?

Jeg har ikke en dyt forstand på joinsyntaks, men er det nødvendigt eller kan man bare holde det hele i nogle færre tabeller?

Nogle ideer eller erfaringer?
Avatar billede arne_v Ekspert
31. maj 2003 - 17:40 #1
Der er flere måder.

Mine to umiddelbar ideer er:

1)  Klon alle tabeller så hver app kører på et separat
    sæt tabeller.

    Ikke elegant men overskueligt at lave.

2)  Tilføj et felt "klasse" til alle de relevante tabeller.

    Lad URL eller brugernavn bestemme klassen og tilføj
    en WHERE klasse = ... til relevante queries.

    Mere elegant men kræver også lidt mere.

Jeg kan ikke lige se behovet for nye joins.
Avatar billede alta Nybegynder
31. maj 2003 - 17:48 #2
arne_v, hvordan klon?

Hvis nu der er 2 klasser med 10 elever, hvad så? Mener du:

klasser
id - navn - email - pass - klasse
1  - jens - @    - jr  - 5a
2  - niles - @    - nlz  - 5b

forum
id - titel - txt - forfatter - svar - klasse
1  - test  - bla - jens      - 3    - klasseid 1
2  - test  - bla - niles    - 0    - klasseid 2
Avatar billede arne_v Ekspert
31. maj 2003 - 17:58 #3
Jeg formoder at du idag har noget i retning af:

bruger
------
id (PK)
navn

forum
-----
id (PK)
navn

post
----
postid (PK)
forumid
brugerid
tid
emne
indhold

og at problemet nu er at du skal have subsettet brugere og fora.

Løsning #1 går ud på at klone de 3 tabeller uden at tilføje
felter som f.eks. bruger2, forum2 og post2 og så klone applikationen
også og rette klonen til så den bruger 2 tabellerne.

Hurtigt at lave, men det holder ikke når der skal laves
mange klasser.

Løsning #2 går ud på at tilføje felter klasse til bruger
og forum tabellen:

bruger
------
id (PK)
navn
klasse

forum
-----
id (PK)
navn
klasse

post
----
postid (PK)
forumid
brugerid
tid
emne
indhold

Når så brugeren logger ind finder du brugerens klasse og så viser
du kun de fora der hører til den klasse.
Avatar billede arne_v Ekspert
31. maj 2003 - 17:59 #4
Hvis der er nogle fora som der skal være adgang til for flere
klasser, så skal du have en tabel struktur som:

bruger
------
id (PK)
navn
klasse

forum
-----
id (PK)
navn

klasseforum
----------
klasse (PK)
forumid (PK)

post
----
postid (PK)
forumid
brugerid
tid
emne
indhold
Avatar billede alta Nybegynder
01. juni 2003 - 22:01 #5
Beklager ventetiden...  Dit sidste forslag er lige noget jeg kunne bruge.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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

IT-JOB

Politiets Efterretningstjeneste

DevOps engineer til dataanalyse i PET

Jyske Bank

AI-udvikler

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Specialister til Netværksoperations til Forsvarets nye Digitale Backbone

Netcompany A/S

IT Consultant