Avatar billede thecokeguy Nybegynder
19. maj 2010 - 17:22 Der er 8 kommentarer og
1 løsning

Den bedste/gængse måde at hente data fra MySQL

Jeg har gennem nogle år brugt MySQL til div. projekter, men er i en bestemt "data-situation" i tvivl om hvordan man bedst henter og behandler dataene. Situationen er eks. hvor jeg har en tabel med projekter og en tabel med kategorier, hvert projekt skal kunne have 1..* kategorier associeret. Når jeg så henter dataene for et projekt ind til visning, kan jeg enten først hente data på det givne projekt og dernæst hente data på kategorierne, eller joine dem og have duplikerede data i resultatet. Den første synes jeg ser pænest ud i kode, men der er jo ingen grund til at forbinde 2 gange, hvis en er nok. Men hvordan (hvis jeg henter data for flere projekter) identificerer jeg nemt/elegant hvornår der skiftes fra et projekt til et andet, sådan at man eks. kan udskrive projekttitel + X kategorier for hver af projekterne.

Puha, det var en hel del tekst... Håber ikke det afskrækker jer.

Nogen forslag/kommentarer, el. er det sort snak?
Avatar billede arne_v Ekspert
19. maj 2010 - 17:41 #1
I mange tilfaelde vil JOIN performe bedst. Din app kan sagtens se naar der starter et nyt projekt.
Avatar billede arne_v Ekspert
19. maj 2010 - 17:43 #2
Du laver en variabel lastproject og hvis project er forskellig fra lastproject saa starter der et nyt project.
Avatar billede thecokeguy Nybegynder
19. maj 2010 - 18:03 #3
Det var også hvad jeg havde tænkt, men synes ikke det var særlig "elegant". Det bliver da hurtigt voldsomt rodet, hvis man har mange "niveauer", altså med en variable for hver enkelt del-listning. Hvis det giver mening?
Avatar billede arne_v Ekspert
19. maj 2010 - 19:06 #4
Det synes jeg da ikke.

N niveauer giver N meget simple if saetninger inden i while loekken.

Jeg tror faktisk at det ville vaere langt mere rodet med separate queries.
Avatar billede thecokeguy Nybegynder
19. maj 2010 - 19:21 #5
Jeg er enig i at det ville være mere rodet med separate queries... Havde bare håbet på et andet svar. Jeg takker for dine kommentarer, smider du et svar?
Avatar billede arne_v Ekspert
19. maj 2010 - 19:36 #6
Kommer her.

Hvilket sprog bruger du i app?
Avatar billede thecokeguy Nybegynder
19. maj 2010 - 20:08 #7
Mest PHP, men også Java og Delphi
Avatar billede arne_v Ekspert
20. maj 2010 - 00:46 #8
I Java kunne du bruge en O/R-mapper som f.eks. Hibernate og helt undgå problematikken.

Men ellers er det som sagt ikke så svært at teste på om der er startet noget nyt.
Avatar billede thecokeguy Nybegynder
20. maj 2010 - 15:26 #9
Det vil jeg da helt klart prøve af... Takker
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