02. juli 2004 - 11:25Der er
5 kommentarer og 1 løsning
PHP og MySQL - Struktur og optimering
Hej Eksperter.
Jeg har to tabeller i min database - brugere og poster. Jeg ønsker at kunne angive, hvilke poster der er lavet af hvilke brugere. Mit spørgsmål går nu på - kort og godt - om jeg bør placere brugerens navn i posten eller hans ID.
1) Brugerens ID bruges som reference 2) Brugerens navn bruges som reference
Der er jo fordele/ulemper ved begge :
1) Fordel : Et tal fylder mindre i databasen Ulempe : Tallet skal laves til et navn vha. PHP
2) Fordel : PHPfortolkeren belastes mindre Ulempe : Databasen bliver "tungere".
Jeg ved at vi snakker virkelig små forskellige i performance. Men lad os forestille os, at jeg har en million brugere. Hvilken løsning ville i givet fald så være den optimale?
Faktisk vil PHP fortolkeren blive belastet lige meget - lige gyldigt hvilken metode jeg bruger.
1) - Her skal jeg hente brugerens ID først (har hans brugernavn i en session/cookie) - Gemmes i DB'en (fylder ikke ret meget) - Brugernavn hentes vha. ID
2) - Brugerens navn skal hentes i DB'en (for at være sikker på at det er skrevet ordentligt - fx. uden CapsLock ved logon - Placeres i DB'en (fylder mere) - Hentes fra DB'en - spare en query i forhold til 1)
Eller.. "lige meget".. Ved jeg nu ikke. Men jeg er i tvivl om hvorvidt det kan betale sig at bruge ID numre i databasen frem for navnene.
Hvad gør man fx. på Eksperten?
Synes godt om
Slettet bruger
02. juli 2004 - 11:42#3
Jeg ville nok vælge at bruge brugerens ID som reference.
Hvis du brugte navn som reference, og skulle rette en brugers navn pga. stavefejl, skulle du så til at rette i alle de poster som brugeren havde deltaget i.
Hvis du brugter ID, kunne du nøjedes med at rette et sted.
ID skulle gerne være entydigt, i modsætning til navn, der kunne jo være mere end en der hed "Hans Jensen"...
Synes godt om
Slettet bruger
02. juli 2004 - 11:45#4
Uanset hvilken metode du bruger, tror jeg ikke du slipper for at lave mindst en join eller subquery.
For tak input. Jeg er ved at lukke spørgsmål - hvis nogen føler de burde have points, så kontakt mig i et af mine aktive spørgsmål - så finder vi ud af noget dér.
Synes godt om
Ny brugerNybegynder
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.