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
862
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
Vihamielisyys naisia kohtaan on jo yllättävän suuri ongelma
Esiintyy laajemmassa mittakaavassa, mitä vain tällä palstalla. Mistä tuo ilmiö nyt oikein johtuu, ja saa alkuvoimansa?3241856Olen melko vakuuttunut
etten tule olemaan koskaan täysin onnellinen ilman sinua. En uskonut, että näin kävisi kenenkään kanssa. Kunnes sain kok831297Odotan sitä hetkeä
kun nähdään taas. Tiedän, että sinäkin odotat. Kun se päivä koittaa, katseesi hakee minua. Ehkä arkailemme toisiamme väh751294- 1341167
- 81986
- 90904
- 48853
Postimerkki kirjeeseen ja kortiin maksaa jo 3 euroa!
https://yle.fi/a/74-20229241 Kyllä tämä on järjetön hinta, Posti tuhoaa itsensä tällä hinnalla, täytyyhän Postin "Herro118824- 48790
Sitä saattaa vähän hölmöillä
rakkauspäissään, jos tunteita on enemmän kuin osaa käsitellä. Alkuhölmöilyt on söpöä ja sallittavaa.60746