Avatar billede mr-baluba Nybegynder
09. december 2005 - 11:11 Der er 8 kommentarer og
4 løsninger

Opbygning af database

Hej

Jeg er ved at prøve mig med et større community site, og har brug for lidt gode råd omkring opbygningen at min database.
Kort beskrevet er sitet et antal mindre databaser (tabeller) med forskellige emneområder (artikler, opgaver, jobbank, kommentarer mm.). Der er 3 forskellige brugere med forskellige rettigheder (studerende, institutioner og nogle admins).

Bør jeg have én mega tabel hvor ALLE indlæg gemmes, både artiker og kommentarer. Hvordan laver man så relationer mellem f.eks en artikel og de rigtige kommentarer? Man skal måske give alle indlæg et felt med type, og så gemme en artikels id hos kommentarene. Har læst mig til at dette vil give en STOR men hurtig database. kan dog ikke helt gennemskue hvordan man så skal bygge hver enkelt side (emne) op.

Eller bør jeg have én tabel til hvert emne. Dette hænger bedre sammen i mit hoved, og jeg kan se hvordan siderne bør sættes op.
Men har læst og hørt at det ikke er så effektivt?

Er der andet jeg bør overveje?
På forhånd tak :)
Avatar billede Slettet bruger
09. december 2005 - 11:26 #1
Der er sikkert forskellige meninger om hvad man bør gøre, men det mest rigtige efter min mening er at skille det lidt op, så er det nemmere at overskue og styrer.

Så du skal have en tabel med artikler og knytte kommentarer til artiklen ved at koble de to tabeller sammen. så der i kommentar tabellen er en henvisning til hvilken artikel den tilhører.

Du kan jo sagtens kun nøjes med en kommentar tabel, der så kan indeholde kommenatrer til artikler, opgvaer og andre du ellers vil have kommentarer tilknyttet til.
Så skal du bare have et felt i kommentar tabellen der henviser til om det er en srtikel eller opgave.
Avatar billede Slettet bruger
09. december 2005 - 11:28 #2
Ved ikke om jeg har forklaret mig godt nok, men du skal have en database med tabellerne i og så knytte dem sammen som du egentlig selv har skrevet.

Du bør så have flere tabeller i den ene database der så linker til hinanden.
Avatar billede mr-baluba Nybegynder
09. december 2005 - 11:59 #3
Ja det var hvad jeg tænkte. Lader den stå lidt endnu, hvis der skulle komme andre meninger forbi :)
Avatar billede AnyFellow Mester
09. december 2005 - 17:23 #4
Kan komme med et indspark omkring brugerdelen:
Selvom du kun har 3 brugergrupper, kan det godt svare sig at tænke lidt længere.
Du laver en tabel med brugeroplysninger. (eks. navn/brugernavn/brugerid = Peter Hansen/peha/1
Du laver en tabel med rettigheder til forskellige områder. (eks. gruppeid/navn/beskrivelse = 1/edit_news/Brugeren kan editere rettigheder)
Du laver en tabel der angiver brugerens rettigheder, eller sagt på en anden måde, du laver en tabel der angiver hvilke grupper en bruger er medlem af. (eks. brugerid/gruppeid = 1/1).

På siderne checker du så om brugeren er medlem af gruppen, for at vedkommende må se noget, eller rette i noget.

Fordelen er at du altid kan udvide dit system, hvilket vil være ret træls hvis du har bygget det hele op omkring 3 niveauer.
Avatar billede domaz.dk Novice
11. december 2005 - 11:57 #5
du kan også vælge at have én tabel til artikler, opgaver og jobbanken.... og én tabel til alle kommentarer...

det gode ved det er at du så kun behøver at henvise til en id som kommentaren hører til og ikke om det er en artikel, opgave eller jobbank...
Avatar billede domaz.dk Novice
11. december 2005 - 12:00 #6
kfisker: dejlig måde at opbygge det på... den vil jeg da lige lave en note af... :) takker
Avatar billede mr-baluba Nybegynder
12. december 2005 - 21:32 #7
Ja domas, det lyder godt og enkelt. Ville du så have et type felt i artikel-opgave-job tabellen til at hente det rigtige ind? f.eks select alle fra <tabel navn> hvor type=1

kfisker, smart. Det vil jeg prøve.
Avatar billede mr-baluba Nybegynder
12. december 2005 - 21:38 #8
Og lige et sniger spørgsmål. Hvis man nu på f.eks artikel oversigten vil vise hvor mange kommentarer der er til en given artikel, altså skrive i bunden "Kommentarer (42)" ved hver artikel...bliver det så for langsommeligt når man hele tiden skal kigge hvor mange gange en artikel id optræder i kommentar tabellen. Ved intet om hvor hurtigt sådan noget går.
Avatar billede mr-baluba Nybegynder
12. december 2005 - 21:40 #9
domas smid også svar, så deler i :P har fået en go ide af opbygningen nu.

Tak for hjælpen.
Avatar billede Slettet bruger
12. december 2005 - 21:42 #10
Hvis du laver en count og du are skal tælle hvor mange gange det enkelte id optræder går det rimelig hurtigt, det skulle ikke "stresse" din aplikation.
Avatar billede domaz.dk Novice
12. december 2005 - 21:42 #11
så gerne... held og lykke med det.. :)
Avatar billede mr-baluba Nybegynder
12. december 2005 - 23:39 #12
tak tak :)
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
Alle kurser indenfor Microsoft 365 – både til begyndere og øvede.

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