Siirry sisältöön

Kommentoi käsitemallia

Puhekupla 17
Keskustelu | Maanmittauslaitos
Keskustelu on päättynyt

Perustiedot

Päättynyt: 12.8.2019

Liitteet

  • Ei liitteitä
Ilmianna

Katso muut kommentit

Versiot ja linkitys

Profiilikuvan paikka

Jarkko Aaltonen, Porin kaupunki
27. kesäkuuta 2019 kello 11.19.03

"218 Jos Osoitepisteeseen linkitetty Osoitekohde vaihtuu toiseksi, Osoitepisteestä tulee uusi versio."

Osoitekohteen ja Osoitepisteen välillä on monen-suhde-moneen -relaatio, eli niitä yhdistämään tarvitaan erillinen linkkitaulu, jossa pakollisina sarakkeina ovat ainakin:

Osoitekohteen ID
Osoitepisteen ID

Lisäksi siinä on tietysti suhteeseen liittyvät attribuutit ja järkevää olisi olla myös oma ID itse linkille.

Kun osoitekohde vaihtuu toiseksi, eli reaalimaailmassa esimerkiksi rakennuksen osoite vaihtuu, niin tietokannassa muutokset tapahtuvat vain tuossa linkkitaulussa, eli yhdelle linkille kirjataan päättymispäivämäärä, ja uudelle osoitteelle syntyy uusi rivi. (Toki jos kyseessä on kokonaan uusi osoite, niin tottakai se sitten myös syntyy osoitekohde-tauluun.)

Miksi osoitepisteestä tehdään siis uusi versio, joka on täsmälleen samanlainen kuin edellinen?


Versioiden hallinta onkin sitten jo kokonaan toinen asia, ja siihen kaipaisin vähän tarkennuksia.

Kun saman kohteen eri versiot ovat ilmeisesti samassa taulussa, niin miten niiden ID:t ja varsinkin linkitykset hallitaan?

Esimerkki:

Osoitepisteellä on järjestelmän antama uniikki ID, ja sillä on versionumero 1.
Kun osoitepisteestä syntyy muutoksen myötä uusi versio, eli osoitepiste-tauluun syntyy uusi rivi, sillä täytyy olla oma uniikki ID (pääavain). Käytännössä siis rivi saa joko uuden uniikin ID:n, tai pääavaimena toimii esim. ID:n ja versionumeron yhdistelmä. (Jälkimmäinen olisi siinä mielessä looginen, että saman kohteen eri versiot linkittyisivät silloin toisiinsa tuolla ID:llä.)

Oli pääavain mikä tahansa, niin joka tapauksessa osoitepiste-taulun pääavain on se, jolla kohteet linkitetään linkkitaulujen avulla muihin kohteisiin.

Onko tarkoituksena säilyttää vanhoissakin versioissa niissä olleet linkitykset muihin kohteisiin?

Jos on, niin tämä tulee johtamaan aikamoiseen ylläpitomekanismiin, koska version vaihtuessa pitää aina lisätä kaikkiin linkkitauluihin uudet rivit kaikille kohteen linkeille, ja päivittää niihin uudet kohde-ID:t. Minusta ei voida ajatella, että vanhoilla versioilla säilyisi linkityksessä samat ID:t, koska silloin niihin alkaisi jatkossa linkittymään myös esim. uudet osoitteet, joita version voimassa ollessa ei ollut vielä olemassakaan.

Jos meillä on esim. rakennuspisteestä kaksi versiota linkkeineen, ja sitten niihin linkitetystä osoitekohteesta tulee uusi versio, niin mekanismin pitää taas päivittää linkkitaulua, mutta tietysti vain voimassa olevan rakennuspisteversion osalta.

Ja lisäksi n kpl muita skenaarioita. Toivottavasti näistä nyt kuitenkin selviää mitä haen. Eli versioiden ja linkitysten hallinta on vaikeaa ja monimutkaista, ja kannattanee aika tarkasti miettiä mikä on enää saavutetuihin hyötyihin nähden järkevää.

j.