simenss Skrevet 31. august 2007 Del Skrevet 31. august 2007 Jeg har to tabeller i databasen min: brukere og poststeder brukere bruker_navn bruker_postnummer poststeder postnummer poststed Jeg ønsker å kjøre en spørring mot databasen hvor jeg henter ut alle brukere sortert etter poststed (ikke postnummer). Hvordan ser en slik mySQL-spørring ut? Lenke til kommentar
roac Skrevet 31. august 2007 Del Skrevet 31. august 2007 Noe sånt mener du?: select brukere.navn, poststeder.poststed from brukere innner join poststeder on (bruker_postnummer = poststeder.postnumer) order by poststed asc Jeg er forresten glad for at du bruker flertallsformen i tabellnavn Lenke til kommentar
Crowly Skrevet 31. august 2007 Del Skrevet 31. august 2007 Alternativt SELECT t1.bruker_navn, t2.poststed FROM brukere t1, poststeder t2 WHERE t1.bruker_postnr = t2.postnummer ORDER BY poststed Lenke til kommentar
kaffenils Skrevet 31. august 2007 Del Skrevet 31. august 2007 Alternativt SELECT t1.bruker_navn, t2.poststed FROM brukere t1, poststeder t2 WHERE t1.bruker_postnr = t2.postnummer ORDER BY poststed 9396400[/snapback] Utgått syntax. Det fungere selvfølgelig, men det er mye enklere å lese roacs forslag siden JOIN kondisjonen er plassert i INNER JOIN statementet og ikke i WHERE statementet. Lenke til kommentar
CruellaDeVille Skrevet 31. august 2007 Del Skrevet 31. august 2007 Jeg er forresten glad for at du bruker flertallsformen i tabellnavn 9396307[/snapback] Kan jeg spørre hvorfor? Gjennom alle kurs jeg har hatt har jeg lært det motsatte. Er jeg feilinformert eller er det personlig preferanse? Lenke til kommentar
Manfred Skrevet 31. august 2007 Del Skrevet 31. august 2007 Når det kommer til navngiving er det kun preferanse. Men jeg er også enig i at det er best med flertallsform på tabellene. Og så er jeg for bruk av engelsk. Kjenner flere som lager tabell- og kolonnenavn på norsk. Lenke til kommentar
roac Skrevet 31. august 2007 Del Skrevet 31. august 2007 Kan jeg spørre hvorfor? Gjennom alle kurs jeg har hatt har jeg lært det motsatte. Er jeg feilinformert eller er det personlig preferanse? 9400131[/snapback] Rett og slett fordi en tabell er en samling av flere "objekter" av samme slag. F eks kan en tabell inneholde informasjon om flere biler, og du jobber "alltid" med sett av flere, og bare unntaksvis en og en record. Lenke til kommentar
CruellaDeVille Skrevet 31. august 2007 Del Skrevet 31. august 2007 Jeg syns ikke det var en god grunn, men siden det er et spørsmål om preferanse er det vel ikke egentlig et diskusjonsemne (og jeg er på vei til å hijacke en tråd - Beklager TS). Men vil "jobber med muligheten for flere objekter" da si at du navngir en klasse feks i Java i flertallsform også? Lenke til kommentar
roac Skrevet 1. september 2007 Del Skrevet 1. september 2007 (endret) Jeg syns ikke det var en god grunn, men siden det er et spørsmål om preferanse er det vel ikke egentlig et diskusjonsemne (og jeg er på vei til å hijacke en tråd - Beklager TS). Men vil "jobber med muligheten for flere objekter" da si at du navngir en klasse feks i Java i flertallsform også? 9401415[/snapback] En klasse er en mal for noe, et objekt er en instans av klassen. Begge bør være i entallsform. En collection eller hashmap derimot er en gruppering av flere tilsvarende objekter, og der kan det være hensiksmessig å navngi dem med flertallsform. Men, det er likevel en stor forskjell her. Java er et programmeringsspråk der man i utganspunktet jobber med et og ett objekt, mens man i databaser skal, i henhold til best practice, jobbe settorientert. I Java kan man således håndtere en og en bil, mens man i en database skal håndtere bilene, evt de bilene som tilfredsstiller et kriterie. Det er derfor ikke helt enkelt å sammenligne java og databaser, og det er også en av grunnene til at man ikke nødvendigvis bør la en person være både programvareutvikler og databaseutvikler, for programvareutviklere erfaringsmessig ofte har problemer med settorientert tankegang. (Det er sikkert mange som håndterer det godt også, men jeg har sett så alt for mange som ikke gjør det). Endret 1. september 2007 av roac Lenke til kommentar
roac Skrevet 1. september 2007 Del Skrevet 1. september 2007 (endret) Kan jeg spørre hvorfor? Gjennom alle kurs jeg har hatt har jeg lært det motsatte. Er jeg feilinformert eller er det personlig preferanse? 9400131[/snapback] Dette kan være for at de ikke kjenner ISO-11179, som for SQL hevder at "Tables, sets, and other collections shall be named with a collective, class, or plural name." Det kan være helt greit å navngi en tabell som kontoregister, evt konti. Dette ligger vel forøvrig relativt tett opp til det man gjør i f eks Java. Kilde: Joe Celco's SQL Programming Style, utgitt på Morgan Kaufmann i 2005. Endret 1. september 2007 av roac Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå