Miksi palvelu ei salli käyttäjätunnuksen muuttamista?



Olet varmaan joskus rekisteröitynyt nettipalvelun käyttäjäksi, ja jälkikäteen harmitellut että joitain jättämiäsi tietoja ei pääse jälkikäteen enää muuttamaan.  Usein kyseessä on käyttäjätunnus, oman valinnan mukaan tai ehkä sähköpostin tai puhelinnumeron muodossa. Minkä takia käyttäjätunnusta usein ei sallita muuttaa?  Muuttamisen tarve voi useinkin olla asiallinen, ja rajoitus nähtävästi mielivaltainen.

Tilanne johtuu useimmiten siitä, että järjestelmän suunnittelija on tietokantaa suunnitellessa valinnut luonnollisen avaimen (engl. natural key) perusavaimeksi (engl. primary key), niin kuin esimerkiksi käyttäjän sähköpostiosoitteen, puhelinnumeron tai itse valitseman tunnuksen.  Perusavainta tarvitaan yksittäisten tietokantarivien yksilöimiseen, ja eri syistä perusavaimen päivittäminen tietokannassa usein on epäkäytännöllistä.  Tästä johtuen järjestelmän suunnittelija yleensä ei tue toimia, joka vaatii perusavaimen muuttamista. Jos perusavain on luonnollinen avain, tästä seuraa myös että kyseisen luonnollisen avaimen kentän (esim. sähköpostiosoitteen) muuttamista ei tueta — vaikka tälle olisi asiallinen tarve.

Tilanne ei ole kuitenkaan välttämätön.  Suunnittellessa tällaisia järjestelmiä kannattaa harkita toteuttamisvaihtoehtoja perusavaimelle: käyttää luonnollista avainta, josta voi seurata yllä mainittu tilanne, tai niin kutsutun keinoavaimen (engl. surrogate key) käyttöä. Luonnollinen avain tulee tosimaailmasta (esim. käyttäjän sähköpostiosoite, puhelinnumero tai oma tunnus), kun keinoavain taas on joku pelkästään tähän tarkoitukseen luotu avain (esim. juokseva kokonaisluku).

Eli vaikka tietomallista löytyy luonnollisia avaimia, niitä ei ole pakko käyttää perusavaimina. Sen sijaan voi tarkoituksella luoda keinoavaimen, joka ei ole riippuvainen käyttäjän tiedoista.  Keinoavaimen suurin hyöty on siis se, että se on täysin riippumaton tosimaailmasta, joten kaikki käyttäjän tiedot ovat muutettavissa, mukaan lukien luonnolliset avaimet.  Tällä tavalla käyttäjä pääsee vapaasti muuttamaan kaikkia tietojansa järjestelmässä, ilman rajoitteita.

Seuraavan kerran kun itse olet suunnittelemassa tietokantaa, harkitse kumpi on se parempi perusavain järjestelmällesi: keinoavain vai luonnollinen avain.  Myös sovelluksen käyttäjän näkökulmasta!

Tämän artikkelin on kirjoittanut Markus Holmberg  ja sitä ovat sittemmin muokanneet muut Codenton työntekijät.

Yksi kommentti artikkeliin ”Miksi palvelu ei salli käyttäjätunnuksen muuttamista?

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *