On kolme taulua, opiskelijat, kurssit ja ilmoittautumiset:
Opiskelija (id, nimi);
Kurssi (id, nimi);
Ilmoittautumiset (id, id_kurssi, id_opiskelija);
Nyt pitäisi jotenkin järkevästi tulostaa luettelo opiskelijoista ja mille kursseille kukin on ilmoittautunut, jotenkin näin:
Matti Virtanen - matem, ruotsi, liik, kuv, hist
Katri Savolainen - hist, matem, usk, eng
Anna Ström - ruotsi, eng, matem
jne...
Miten tämä onnistuisi mahdollisimman "nopeasti/tehokkaasti"
Yksi vaihtoehto on tietenkin hakea ensin kaikki opiskelijat ja sitten jokaisen opiskelijan ilmoittautumiset, mutta silloin kyselyiden määrä olisi aivan hirveä. Onko parempia ideoita?
Opiskelijaoita ja ilmoittautumisia on tosi paljon!!!
Jotenkin järkevästi...
2
269
Vastaukset
- I. Proqatlis
Kouluesimerkki moni-moneen -relaatiosta, joka puretaan luomalla opiskelijoiden ja kurssien väliin ilmoittautumiset-taulu. (Miksi tuossa ilmoittautumiset-taulussa on sarake 'id'? Ei sitä tarvita.)
Tauluilla tulee olla uniikit indeksit, jotka tässä tapauksessa koostuvat id-sarakkeista. Ilmoittautumiset-taulun uniikki indeksi muodostuu sen molemmista sarakkeista. Seuraava SQL-operaatio on aika tehokas:
select
opiskelija.nimi, kurssi.nimi
from
opiskelija, kurssi, ilmoittautumiset
where
ilmoittautumiset.id_opiskelija = opiskelija.id and
ilmoittautumiset.id_kurssi = kurssi.id
order by
ilmoittautumiset.id_opiskelija;
Ratkaisinko kotiläksysi ;-)- tohlo
> (Miksi tuossa ilmoittautumiset-taulussa on
> sarake 'id'? Ei sitä tarvita.)
(En ole alkuperäinen kysyjä.)
Vaikkapa siksi, että opiskelija voisi ilmoittautua samalle kurssille useampaan kertaan. Laiska opiskelija kun ei heti pääse kurssista läpi. ;-) Tosin arvosteluita ym. ei tässä ehkä haluttukaan tallentaa eli mahdollisesti useampaa kurssi-henkilö -paria ei tarvitse salliakaan, joten tässä mielessä olisit siis oikeassa.
Niin, ja vastauksesi ei ilmaissut sitä, että sql-kyselyn tulos (1. rivi: "Matti, usk.", 2. rivi: "Matti, eng.", jne) pitää käyttöliittymässä näyttämistä varten purkaa vielä kysyjän haluamaan "näyttävämpään" muotoon ("Matti - usk, eng, hist"). Tämä tosin taisi olla jo itsestään selvää. ;)
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 881184
Asiallinen lähestyminen
Mitä on asiallinen lähestyminen?? Tietääkö tai tajuaako kukaan, varsinkaan miehet??? Eilen NELJÄNNEN kerran jouduin isk1511016En tiedä..
Yhtään minkälainen miesmaku sinulla on. itse arvioin sinua moneenkin otteeseen ja joka kerta päädyin samaan lopputulokse50701Jennika Vikman avoimena - Isosisko Erika Vikman ohjeisti napakasti Tähdet, tähdet -kisaan: "Älä.."
Jennika ja Erika - niin ovat kuin kaksi marjaa! Ilmeiltään, ääneltään ja eleiltään hyvinkin samanlaiset - toinen on kyll14700Vedalainen metafysiikka
Termi ”metafysiikka” kuuluu Aristoteleelle. Metafysiikka tarkoittaa ”fysiikan jälkeen” eli tietoa siitä, mikä on tavalli287685- 60674
Ai jaa sinä oletkin ahnas
Ja romanttinen luonne, nyt vasta hiffasin että olet naarastiikeri. Parempi myöhään kuin ei milloinkaan.107660En oikeastaan usko että sinä tai kukaan
Olisi oikeasti ihastunut tai rakastunut. Se on joku harhakuva joka minusta miehestä syntyi. Ja kun se särkyy, niin "tunt42614Viime yönä mietin paikkoja luonnossa, missä olen kulkenut
kävellyt ja ikävöinyt, ja ollut niin yksin. Monet kerrat. Ne palauttavat mieleeni sinut ja sen, kuinka kipeää on se kaip57602Milloin viimeksi näit ikäväsi kohteen?
Oliko helppo tunnistaa hänet? Millaisia tunteita tuo näkeminen herätti sinussa?35585