Rickman Skrevet 3. desember 2008 Del Skrevet 3. desember 2008 Har en oppgave der tabellene er gitt; 1. create table ingrediens (id int not null auto_increment primary key, navn varchar(64), beskrivelse varchar(255), pris int); 2. create table rett (id int not null auto_increment primary key, navn varchar(64), beskrivelse varchar(255), opprinnelse varchar(255), kategoriid int not null); 3. create table kategori (id int not null auto_increment primary key, navn varchar(64), beskrivelse varchar(255)); 4. create table rettingrediens (rettid int not null, ingrediensid int not null, megde int, primary key(rettid, ingrediensid)); Det jeg lurer på: Hvis jeg nå skal kjøre en spørring, er jeg da nødt til å bruke den irriterende skrivemåten; tabellnavn.feltnavn, når feltene jeg bruker IKKE heter det samme? Eks: Skal sette en betingelse i dette eksempelet hvor id fra ingrediens skal være lik ingrediensid fra rettingrediens. Er det nok å skrive; ingrediens.id = ingrediensid Kontra; ingrediens.id = rettingrediens.ingrediensid Grunnen til at jeg spør, er at i løsningsforslaga til alle eksamenssett bruker de den lengste metoden, og jeg skriver disse tingene for hånd og syns det blir irriterende og skrive unødvendig mye. Så kan jeg altså droppe den lange skrivemåten, om feltnavnene ikke er like? Lenke til kommentar
terjeelde Skrevet 3. desember 2008 Del Skrevet 3. desember 2008 Så kan jeg altså droppe den lange skrivemåten, om feltnavnene ikke er like? Kan og bør er to helt forskjellige ting. Hva hvis noen legger til en kollonne i den ene tabellen, slik at navnet ikke lenger er unikt? Vanlig å gjøre noe ala: SELECT u.id, u.first, u.last, s.salary FROM employees AS u, salaries AS s WHERE u.id = s.userid AND s.salary >= 10; På den måten er det veldig tydelig og stabilt hva du mener, men slipper fult så mye skriving. Lenke til kommentar
Rickman Skrevet 3. desember 2008 Forfatter Del Skrevet 3. desember 2008 Ser ut som en kjekk måte å skrive ting på ja, selv om det ikke sparer så utrolig mye tid siden eksamensoppgavene er relativt korte. Men så lenge vi har en database hvor vi vet at tabellene ikke skal utvides med nye felter, kan vi da være enige om at vi likegreit bare kan droppe den "lengre skrivemåten"? Lenke til kommentar
terjeelde Skrevet 3. desember 2008 Del Skrevet 3. desember 2008 Men så lenge vi har en database hvor vi vet at tabellene ikke skal utvides med nye felter, kan vi da være enige om at vi likegreit bare kan droppe den "lengre skrivemåten"? Det pleier å virke ihvertfall. Hvordan sensor ser på det er ett annet spørsmål. Kan hende han/hun blir imponert fordi du vet det er mulig, eller irritert fordi du ikke gjør det som du har lært... Kan også hende sensor ikke vet det vil virke. Lenke til kommentar
siDDis Skrevet 4. desember 2008 Del Skrevet 4. desember 2008 Hehe, sant det der med sensor. Men så har ein også lov å klage, har fungert fleire ganger for meg Lenke til kommentar
kaffenils Skrevet 4. desember 2008 Del Skrevet 4. desember 2008 (endret) Her skal du få et stalltips fra meg. Har drevet med databaseutvikling og programmering i 10 år. Men så lenge vi har en database hvor vi vet at tabellene ikke skal utvides med nye felter Stikkordet her er "vet". Vi "vet" aldri hva fremtiden bringer. Samme hva noen sier at de vet i dag, så skal jeg love deg at de kommer krypende om et år eller to og sier at de tok feil. Stol ALRDI på "vet". Derfor anbefaler jeg at du aliaser alle tabeller i spørringer og refererer alle kolonner med to-parts navn, slik terjeelde har gjort. En annen ting er at jeg absolutt ikke liker syntaxen for å joine to tabeller som terjeelde bruker i eksempelet. Endret 4. desember 2008 av kaffenils Lenke til kommentar
terjeelde Skrevet 4. desember 2008 Del Skrevet 4. desember 2008 Stikkordet her er "vet". Vi "vet" aldri hva fremtiden bringer. Samme hva noen sier at de vet i dag, så skal jeg love deg at de kommer krypende om et år eller to og sier at de tok feil. Stol ALRDI på "vet". Meget enig. Det går ann å argumentere for at i dette tilfelle vet han det, siden det er en skole-oppgave, og ikke noe som skal er til faktisk bruk, og skal driftes. Likefult vil jeg anbefale å danne, og holde på, gode vaner også ved skoleoppgaver. Både fordi sensor kan ha samme tanker som oss, og også fordi vanskelige vaner kan være vonde å bli kvitt. Det er ikke uten grunn at folk som er "rett ut av skolen" ofte blir sett på med litt skepsis. En annen ting er at jeg absolutt ikke liker syntaxen for å joine to tabeller som terjeelde bruker i eksempelet. Må vel egentlig si meg litt enig. Var bare enkleste/korteste måten å skrive en spørring for å illustrere noe helt annet. Både når det gjelder joiningen, og også dette med å bruke fulle/alias-navn, så er det en ting jeg lurer på om vi har glemt å tenke på: Spørsmålet er ikke bare om tabellene kommer til å endres, men også noe med å ha omtanke for nåværende kollegaer, og andre som kanskje skal drifte samme system senere. At en spørring virker betyr ikke at den er gjort på best mulig vis. Såfremt det ikke går ut over hvordan spørringen kjøres og ytelse, så vil jeg absolutt anbefale at man er bevist på å skrive lett lesbare spørringer. Det er kanskje noen andre som skal lett kunne se hva du har tenkt, enten for å finne ut hva spørringen gjør, eller for å endre den. Selv om dette kanskje blir mer kommunikasjon mellom mennesker enn rent teknisk, så er det like fult en viktig side av det, som kan få stor praktisk betydning. 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å