Avatar billede nc85 Nybegynder
19. august 2005 - 10:55 Der er 6 kommentarer

Database struktur?

Hej allesammen...

Skal til at lave et slags community... Det skal indeholde en brugersystem med forskellige brugerniveauer - udover dette skal hver bruger have sin "egen side" som på fx. et dating sted eller lign - samt skal hver bruger have sin egen gæstebog på sin side, og evt nyhedsbrev tilmelding...

Der skal også være et forum, artikel system mm, hvor brugere kan oprette indlæg/artikler osv osv...

Dette er dog kun i korte træk, men jeg ved at der skal have mange ID'er og mange reference ID'er i sådanne en database - og databasen er jo nok kæmpe...

Mit spm er simpelthen hvordan i mener at man sætter sådanne et database bedst op... Altså nogle der har nogle forslag?

Jeg vil give 200 point til den der kan lave denne database struktur, eller guide mig i hvordan den skal sættes op bedst da jeg selv synes det er meget svært at overskue hvordan jeg lige laver den
Avatar billede bromer Nybegynder
19. august 2005 - 10:58 #1
Du får nok mest ud af en guide af en slags istedet for at folk laver det til dig. Hvis du har mulighed for det vil jeg anbefale at du benytter en mere voksen database end MySQL. PostGreSQL har bedre håndtering af transactions, foreign keys og stored procedures, hvilket kan være meget rart når man bygger et stort system.
Avatar billede nc85 Nybegynder
19. august 2005 - 11:00 #2
Kender nemlig ikke PostGreSQL - desuden har min server også kun mySQL :|
Hvor kan jeg da finde en guide som dette?
Avatar billede bromer Nybegynder
19. august 2005 - 11:07 #3
Jeg tænkte mere på guide som fra ekspertens brugere ikke fordi jeg rent faktisk kender en guide. Kender du til teorierne vedrørende normalformer? Når jeg skal opbygge en database struktur overvejer jeg altid, hvilke dele af systemet man kan opdele i grupper. I dit tilfælde har du sikkert en bruger/community gruppe. En gæstebogs gruppe, forum, artikel grupper er nok heller ej at løbe udenom.

Man kan derefter gå ind i een gruppe og undersøge, hvordan man skal opbygge systemet der. For community gruppen vil der nok skulle være en tabel kalder user der holer styr på data fra brugerne. Dertil nogle tabeller vedrørende brugernes rettigheder (hvor mange du skal have af disse kommer helt an på, hvilken form for sikkerhed du ønsker).

Generelt designer jeg altid de vigtige ting først. I dit tilfælde er dette nok gruppen omkring brugere og specielt brugertabellen. Hvis du arbejder lidt på den måde kan du sikkert finde et godt udgangspunkt. Det er ikke en dum ide at benytte visio eller et andet grafisk værktøj til at lave en visuel fremstilling af databasen.

Når du er færdig med selve opbygningen af databasen skal du overveje, hvordan du vil tilgå dine data. Hvis du tit henter et brugerid udfra en email er det nok en god ide at have et index på email i user tabellen etc.
Avatar billede bromer Nybegynder
19. august 2005 - 11:08 #4
Hvis du ikke kender til Visio eller andet til at lave den visuelle repræsentation er dbdesigner [1] et udemærket bud :)

[1] http://www.fabforce.net/dbdesigner4/
Avatar billede nc85 Nybegynder
19. august 2005 - 11:24 #5
Hmm.... ok.. Har ikke erfaring med den visuelle repræsentation...

Anyway - ved ikke helt om jeg har forstået hvad du mener...
men vi prøver alligevel...

Tabeller:
Brugere
Gæstebog
Forum
Artikler

Osv osv hvis der kommer flere...

Så er der undertabeller eller hvad man nu skal kalde det under dem ja...

Men det jeg ikke helt ved er hvilke der skal ligge derunder for at få mit system til at fungere rigtigt da alle "tabeller" forummet, artikel systemet osv" skal kommunikere med den enkelte bruger hele tiden hvis du forstår hvad jeg mener! Det er vel der hvor id'erne spiller ind... Der skal jo nok være et hav af reference id'er eller noget ?
Avatar billede bromer Nybegynder
19. august 2005 - 11:29 #6
Helt korrekt så så skal der være en hav af referencer. Det er også der den visuelle repræsentation kan bebeholde et fornuftigt overblik over databases opbygning.

Derudover er det ikke alle tabeller der behøver en reference til brugere. Hvis en bruger kan oprette et nyt forum vil du sikkert gerne have en tabel "forum" der som minimum indeholder følgende kolonner

forum(forum_id,name,user_id)

hvor user_id er en reference til den bruger der ejer forumet. Hvis ejeren af forumet så kan tilknytte nyheder til et forum behøver man en forum_news tabel som sådan:

forum_news(news_id,forum_id,headline,content,date)

Her har du så ikke brugerens reference med da du kan finde den ved at slå det op i forum via forum_id'et som du har i forum_news tabellen. Giver det mening?
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