Avatar billede kaydk Nybegynder
30. november 2006 - 21:59 Der er 9 kommentarer og
1 løsning

Database design til hjemmeside

Jeg er igang med at opbygge en community. på siden skal bl.a. være muligt at oprette en en bruger med tilhørende oplysninger, hver brugere skal have tilknyttet egen profil, profilbilled, egen gæstebog andre bruger kan skrive på, pointsystem, evt. fotoalbum.

Mit spørgsmål er, hvordan jeg bedst kan strukturere databasen til dette formål?

Jeg er helt grøn på området med databaser, har dog i dag brugt hele på dagen på at lære det at kende (ADO.NET + MS SQLserver) og har efterhånden også styr på det grundlæggende og principperne.

Er der nogle særlige ting jeg skal være opmærksom på, eller have i overvejelser når jeg skal bygge databasen?

Jeg forstiller, at det struktureres på en overskueligt og fleksibel måde, så der forholdsvis let kan udføre de forskellige forespørgsler, man kunne forestille sig. Men hvordan det kan gøres optimal, har jeg ikke den store ide om.

Any idea?
Avatar billede kalp Novice
30. november 2006 - 23:03 #1
Det er overhovedet ikke moduleret følgende.. bare noget jeg lige har skrevet her i boksen på E... men det kan måske give dig en bedre ide hvis du er helt lost.

Noget alá

Tabel "Brugere"
Dato
BrugerID
Brugernavn
Password
ProfilOverskrift
ProfilTekst
ProfilBillede
Relationer
evt. flere

Tabel "Relationer"
BrugerID
GæstebogID
FotoAlbumID
PointSystemID

Tabel "GæsteBog"
GæstebogID
evt. flere

Tabel "GæstebogIndlæg"
GæstebogID
Dato
GæstebogOverskift
GæstebogIndlæg


Tabel "Fotoalbum"
Dato
FotoAlbumOverskrift
FotoAlbumBeskrivelse
FotoAlbumID
BilledeID

Tabel "Billeder"
BilledeID
BilledeOverskift
BilledeBeskrivelse


Tabel "PointSystem"
Kan ikke lige gennemskue point i forhold til hvad?
Avatar billede kalp Novice
01. december 2006 - 08:21 #2
og et svar hvis du kunne prøve mit input=)
Avatar billede kaydk Nybegynder
01. december 2006 - 17:40 #3
Jeg kan godt se ideen, bortset fra denne tabel:

Tabel "GæsteBog"
GæstebogID
evt. flere

Hvad er formålet med den?
Avatar billede kalp Novice
01. december 2006 - 18:48 #4
Ja du bestemmer selv om du vil have den eller have alle kolonner i
GæsteBog...

Min idé var, at GæsteBog opretter et unikt Id til en bruger så man ved hvilken gæstebog der er hans.

I GæstebogIndlæg skal der så indsættes alle de indlæg der nu bliver skrevet i dennes gæstebog...

det kan sagtens sættes i GæsteBog det hele, men det er vel meget godt at have det opdelt lidt.
Avatar billede kaydk Nybegynder
01. december 2006 - 18:54 #5
Ok, jeg har sådan set forstået det, jeg vil starte ud kun og kigge på bruger og gæstebog. Mit bud:

Tabel "Brugere"
BrugerID
Brugernavn
Køn
Fornavn
Efternavn
Fødselsdagsdato
Email
SenestLogin

Tabel "Relationer"
BrugerID
GæstebogID

Tabel "GæstebogIndhold"
GæstebogID
ForfatterBrugerID (personen der skriver i gæstebogen)
GæstebogIndlæg
Dato
Privat/Offentlig (om indlægget skal kunne ses af andre brugere udover den som har skrevet indlægget, og den som ejer gæstebogen).

Jeg forestiller, hver bruger er repræsenteret i tabellen "Brugere", hver bruger er knyttet til en gæstebogID gennem "Relationer", mens alle gæstebøgers indlæg gemmes i tabellen "GæstebogIndhold", hver række i "GæstebogIndhold" repræsentere således et indlæg, som man kan identificere hvis gæstebog den tilhøre vha. GæstebogID, samt hvem der har skrevet indlægget gennem "ForfatterBrugerID".

Hvad synes du?

Et andet spørgsmål, hvordan opretter jeg en database i VS 2005? Når jeg vælger "New File" og "SQL database", så får jeg en fejlmeddelse?
Avatar billede kaydk Nybegynder
01. december 2006 - 18:58 #6
Jeg har ikke så meget forstand på databaser oprettelse i VS 2005, jeg har bare tænkt mig at oprette en, så jeg kan simulere hjemmeside og database på min computer, og når den skal online, så skal det jo op på en webhost på nettet.

Mangler jeg nogle opsætning i SQL server før at det virker eller hvad?
Avatar billede kalp Novice
01. december 2006 - 19:11 #7
jeg ved ikke hvilken fejl du får, men du kan prøve, at oprette dit projekt på et andet drev.. evt. på skrivebordet.

Det er længe siden jeg installeret mit visual studio så kan ikke engang huske om jeg installerede SQL server seperat, men det tror jeg næsten!

ellers kan du lave en access db evt.

med hensyn til dit forslag før så skal du stadig have en tabel med gæstebogid som er unikt..

du får et problem i det du har nu for gæstebogid bliver jo primary key som er unikt så der vil ikke kunne komme beskeder ind i din gæstebog:P
Avatar billede kalp Novice
01. december 2006 - 19:19 #8
Hvis det du har nu skal fungere skal du bare slette relationer og join BrugerID fra Bruger tabellen med GæstebogId fra GæstebogIndhold
Avatar billede kaydk Nybegynder
01. december 2006 - 19:34 #9
Hvorfor vil der ikke kunne komme indlæg i gæstebog, det kan jeg ikke lige se?

Databasen virker forresten nu.
Avatar billede kalp Novice
02. december 2006 - 12:32 #10
super..

nu ved jeg ikke hvordan du har skruet den sammen din DB.. men det er kun et problem hvis GæsteBogID under tabellen GæstebogIndhold er primary key..
hvis den ikke er så vil det fungere fint
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
Computerworld tilbyder specialiserede kurser i database-management

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