Perusperiaatteet

  • Suomeksi
  • Normaalimuoto
  • Dbmaintain (tai vastaava) skeemamuutosten hallintaan ja versiointiin
  • Mahdollisimman ANSI SQL, ei PostgreSql-ominaisuuksia ellei niille ole jotain oikeaa tarvetta.
  • ei surrogaattiavaimia jos on järkevä luonnollinen avain

Kanta-konfiguraatio

  • Postgre-db sovellusta varten. Siellä public-skeema.
  • Kaksi käyttäjätunnusta: "admin" ja "user"
    • "admin" - ALL PRIVILEGES
    • "user" - select, update, insert, delete 
  • Eli erillisellä käyttäjällä tehdään sovelluksen normaalit toimenpiteet ja erillisellä käyttäjällä tehdään kantamuutokset ja asennukset, konversiot jne.

Voimassaolo

Joillakin käsitteillä on tieto "voimassaolosta". Käytännössä aikaväli, jolla on alkuaika ja loppuaika joiden välissä asia on voimassa.

Tavoitteena aukoton ketju, jossa kullakin ajanhetkellä tarkalleen yksi instanssi on "voimassa". Esimerkiksi kullakin ajanhetkellä on tarkalleen yksi "toimikausi" joka on voimassa. 

Muutoskirjanpito

Kaikissa tauluissa:

  • muutosaika - milloin riviä on viimeksi muutettu (UPDATE/INSERT)
  • luontiaika - milloin rivi on luotu (INSERT)
  • muutoskayttaja
  • luontikayttaja

Ajanhetket tulevat triggereistä, joten sovelluskoodi ei voi vahingossakaan kirjoittaa niihin muutoksia vaan niissä olevat aikaleimat ovat täysin tietokannan vastuulla.

Versiointi

  • Osa käsitteistä voi versioitua siten että käsitteestä on eri ajanhetkillä olemassa sisällöltään erilainen versio. 
  • Vain tarpeelliset asiat versioidaan.
  • Versiointimalli on mahdollisimman yksinkertainen.

 

  • No labels