Avatar billede repsac Nybegynder
26. november 2003 - 21:40 Der er 7 kommentarer og
1 løsning

Kommasepareret liste eller en ny tabel?

Tjaeh, et optimeringsspørgsmål.

Hvad er mest hensigtsmæssigt?

Jeg har to tabeller, een med brugere og een med -- lad os sige -- sko. Det skal nu være muligt at flere bruger deler samme par sko og at een bruger har flere par sko.

Hvad er så mest optimalt?
- udvide tabellen over brugerne med en "må-benytte-disse-sko" kolonne hvori der er en kommasepareret liste med skoId'erne
- lave en ny tabel med brugerId'en og skoId'en -- altså en række for hver "relation" mellem en sko og en bruger
- noget helt andet som jeg slet ikke har tænkt over?

Det skal siges at listen der i så fald skal gemmes i et felt skal opsplittes af PHP...


På forhånd tak for hjælpen.
Avatar billede erikjacobsen Ekspert
26. november 2003 - 21:42 #1
pind 2 er bedst
Avatar billede repsac Nybegynder
26. november 2003 - 21:48 #2
erikjacobsen: også mit umiddelbare bud, men det virker lidt omsonst, da det jo vil give mange rækker hvis mange brugere deler mange sko... Det giver jo det antal sko som hver bruger har (gennemsnitligt) gange flere rækker...

Den mest hyppige query der vil blive kørt er en kontrol af om en given brugerId og en given skoId har en relation -- altså om en given bruger har adgang til et givent par sko.
Avatar billede erikjacobsen Ekspert
26. november 2003 - 21:51 #3
Hvis du gør det som pind 2 kan du lave alle dine forespørgsler  og opdateringer i SQL.

Forestil dig dit besvær hvis du skal slette en sko i den kommaseparerede løsning...
Avatar billede repsac Nybegynder
26. november 2003 - 22:03 #4
erikjacobsen: jeg ved det, men skoene har særdeles sjældent brug for at blive slettet.

Nuvel, jeg tror jeg laver en ekstra tabel -- det må være den "smukkeste" løsning :-)

... på et tidspunkt må man undersøge en masse af sådanne optimerings-ting, eller måske bare lære noget generelt om databasestrukturer :-)

Mange tusind tak for dine input!

Post et svar og du er indehaveren af en lille sjat point mere :-)
Avatar billede erikjacobsen Ekspert
26. november 2003 - 22:09 #5
;) Du lyder ikke helt overbevist. Prøv google med "first normal form"
Avatar billede repsac Nybegynder
26. november 2003 - 22:20 #6
Mmmm, jeg er vist ved at være overbevist -- har set lyset, især i det øjemed at man skulle udvide funktionaliteten; det gør det væsentligt mere fleksibelt...

Du er den næstbedste overtaler, lige i hælene på google ;-)
Avatar billede erikjacobsen Ekspert
26. november 2003 - 22:21 #7
oookay, så tror jeg du får lov til at komme af med lidt point
Avatar billede repsac Nybegynder
26. november 2003 - 22:24 #8
Heh, jeg takker ydmygt :-)
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