On kaksi taulua, oppilas ja luokka.
Oppilas:
oppilas_id
oppilaan_nimi
Luokka:
luokka_id
luokan_nimi
luokkansa_priimus_id
Oppilas voi kuulua vain yhteen luokkaan.
Luokalla voi olla monta oppilasta, ja luokalla on aina luokkansa priimus, ts. luokalla on aina vähintään yksi oppilas.
Miten nuo pitäisi liittää?
Yksi-yhteen: luokkansa_priimus_id & oppilas_id
Yksi-moneen: luokka_id & oppilas_id
Meneekö oikein?
Ja mitä eroa on "identifying" ja "non-identifying" liitoksilla käytännössä? Onko mitään merkitystä tässä tapauksessa kumpaa käyttää?
Parin taulun liitoksesta kysymys
5
714
Vastaukset
- Anonyymi
Oppilas taulukossa ilmeisesti myös pitäisi olla sarake siitä mihin luokkaan hän kuuluu.
Priimus-tieto ilmeisesti pitäisi olla Oppilas taulukossa omana sarakkeenaan, ei Luokka taulukossa, sillä oppilastahan se tieto koskee. - Anonyymi
Eli pitäisi olla jotenkin näin, tai ainakin näin asian käsitän:
Oppilas:
oppilas_id
oppilaan_nimi
luokka_id
onko_priimus (ilmaistaan jollain kaksijakoisella tavalla; voisihan myös ajatella että Oppilas taulukossa olisi yksinkertaisesti oppilaan keskiarvo)
Luokka:
luokka_id
luokan_nimi - Anonyymi
Hyvä huomio! Tuosta oppilas-taulusta puuttui tosiaan luokka_id.
Mielestäni riittää, että luokkansa priimus on pelkästään luokka-taulussa, koska vain yksi oppilas voi olla kerrallaan luokkansa priimus. Priimuksen nimenhän saa selvitettyä sitten sopivalla kyselyllä.
Tämmöistä ehdottaisin nyt.
Oppilas:
oppilas_id
oppilaan_nimi
luokka_id
Luokka:
luokka_id
luokan_nimi
luokkansa_priimus_id
Yksi-yhteen: Luokka.luokkansa_priimus_id & Oppilas.oppilas_id
Yksi-moneen: Luokka.luokka_id & Oppilas.luokka_id- Anonyymi
Voi se varmaan noinkin mennä.
Kyllä se priimus tieto kannattaa luokka tauluun tallentaa eli siitä viittaus oppilas tauluun. Siten estät tilanteen, että luokalla olisi useampi priimus. "onko_priimus" kenttä oppilas taulussa ei estä mitenkään, ilman erillistä tarkistusta tietenkin, tallentamaan siihen sarakkeeseen useampaa piirmus oppilasta samalle luokalle. Luokka taulssa taas sama tieto esiintyy vain kerran eli viittaus aina korvataan automaattisesti uudella priimuksella.
Eli jos tieto on oppilas taulussa, joudut suorittamaan vähintään 2 operaatiota:
1) Nollaa mahdollinen vanha priimus.
2) Aseta uusi priimus,
Sivuhuomio: sarakkeiden nimissä ei yleensä käytetä taluun kanssa saman nimistä etuliitettä jos tieto liittyy luonollisesti tauluun. Se on tavallaan turhaa koska taulun nimi jo kertoo sen selvästi:
"Select id from luokka"
kertoo selvästi minkä id:t tässä haetaan.
Jos kyse on taas muun taulun id:stä eli viittauksesta (kuten esim. se priimus id) niin silloin on hyvä ja suositeltavaakin käyttää selvää etuliitettä, josta selviää mihin tauluun viitataan jne...
Ketjusta on poistettu 2 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Nesteen bensapumput pois, tilalle latausasemat
Näin se maailma muuttuu, kun Suomessakin liikenneasemat lopettavat polttoaineiden myynnin ja tarjoavat enää sähköä autoi1941977Mietin sinua nainen
Ikävöin sinua enemmän kuin voin myntää. Ajattelin et laitan sinulle viestriä (kirjoitin jo puhelimeen viestin) Sitten641376Kyllä suoraan
Sanottua vi.tu.taa. Miksi en toiminut silloin. Sama kun olisi heittänyt smagardin menemään.591125- 621035
Voisitko nainen kertoa mulle
Tykkäätkö sä musta, vai unohdanko koko jutun? Mä en viitti tulla sinne enää, ettei mua pidetä jonain vainoajana, ku sun1521006Härsilällä jännät paikat, saako hän 30 päiväsakkoa Rasmuksen tapauksesta
Syyttäjä vaatii peräti kolmekymmentä päiväsakkoa Härsilälle, vaikka todistajan mukaan Rasmus aloitti nuhjaamisen, jossa83957- 82820
Nainen, viime aikoina olen itkenyt sinua yhä useammin
Niin kuin juuri äsken. Aamulla näin myös unta sinusta. Koskin unessa hiuksia päälaellasi, ja pyytelin sitä heti anteeksi54818- 62744
- 81739