Gå till innehållet

Kommentoi käsitemallia

Pratbubbla 17
Diskussion | Maanmittauslaitos
Diskussionen har avslutats

Basuppgifter

Avslutat: 12.8.2019

Bilagor

  • Inga bilagor
Ilmianna

Se övriga kommentarer

Versiot ja linkitys

Plats för profilbild

Jarkko Aaltonen, Porin kaupunki
27. juni 2019 klockan 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.