Avatar billede madseksperten Nybegynder
09. februar 2016 - 18:51 Der er 3 kommentarer og
1 løsning

strukturering af database

Hejsa.

Jeg er ret meget i tvivl om hvordan man skal opbygge følgende database. Jeg prøver lige at forklare det med et opdigtet eksempel. Hvis man forestiller sig at en bruger kan oprette en bruger på en side, hvor man kan slå med 2 terninger. Dette kan man gøre ved forskellige spillesteder, ved forskellige borde, og ved forskellige dealers.

Så forestiller jeg mig tables vil se sådan ud:

play_dice
________
p_id
place
table
dealer

Hvis man forestiller sig at en bruger kan oprette sig med:

Users
_________
u_id PK AI
username
password
email
Play_dice


Lad os sige der er 1000 brugere, som hver slår terningerne 40.000 gange. Brugerne har så mulighed for at registrere hvad de slår, hvor det var henne, hvilket bord og hvilken dealer der var ved bordet. Efterfølgende kan en bruger så trække data ud og se hvor mange gange de har slået 12, 7, 2 osv, og hvilket bord det var ved, hvilken dealer det var ved, og hvilket sted de spillede.

Hvordan skal man opbygge den database mest hensigtmæssigt, hvis man skulle trække data ud på det. Skulle man samle det i én table som dette her?

Users
_________
u_id PK AI
username
password
email
Play_dice
place
table
dealer

eller skulle man lave det i to tables, og så man kunne lave noget join, keys eller hvad man nu gør her? som dette:

Users
_________
u_id PK AI
username
password
email
Play_dice

play_dice
________
p_id
place
table
dealer



Mvh Mads
Avatar billede arne_v Ekspert
10. februar 2016 - 03:30 #1
Mit bud:

user
----
id, PK
username, UNIQUE INDEX
password (husk at gemme hashed med individuel random salt)
email, UNIQUE INDEX

play
----
user_id, delt PK, FK->user
table_id, FK->table
dealer_id, FK->dealer
outcome

table
-----
id, PK
place_id, FK->place
...

place
-----
id, PK
...

dealer
------
id, PK
...
Avatar billede petersen7913 Forsker
10. februar 2016 - 07:48 #2
Du skal allerførst overveje hvad det er du vil trække UD af systemet.

Så kan du se på hvilke entiteter (som typisk bliver til tabeller) du har brug for.

Det kunne være spiller, spillested, bord, dealer, spil (det enkelte spil). Så kan du overveje hvad du vil trække ud af info, det kan være du så skal tilføje flere.

Når du bagefter ser på relationerne imellem dem kan du begynde at fylde på med de konkrete felter og hvordan de skal forbindes. Og det er så her du går over til tabeller og nøgler.

Til dine spørgsmål om det skal samles i en eller to tabeller er svaret NEJ! Jeg tror ikke 2 tabeller kan gøre det når du efterlyser noget så komplekst.
Avatar billede madseksperten Nybegynder
10. februar 2016 - 16:12 #3
Jeg takker mange gange for hjælpen. Jeg tænker det bliver hen af Arnes forslag. Jeg vil gå i gang med at prøve det. Ligger du et svar Arne?

mvh Mads
Avatar billede arne_v Ekspert
11. februar 2016 - 00:38 #4
svar
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

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