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!
Yksi vastaus artikkeliin Miksi palvelu ei salli käyttäjätunnuksen muuttamista?
Vastaa Peruuta vastaus
Yhteystiedot
Ota yhteys ja kysy Codenton palveluista! Puhelin 040-729 2733, info[at]codento.comTagit
aamiaistilaisuus agile ajankohtaista amazon arkkitehtuuri avoin lähdekoodi aws c CAP cvs ec2 eucalyptus futurologia git google hadoop hajautetut järjestelmät java kirjat konsultointi mapreduce näin meillä ohjelmistotuotanto ohjelmointi ohjelmointikielet pilvi projektit python rekrytointi s3 scala scrum skaalautuvuuden abc skaalautuvuus startup subversion suorituskyky tapahtumat tiedostojen synkronisointi tietokanta vaatimusmäärittely verkkopalvelut versionhallinta virtualisointi välimuistiArkisto
- helmikuu 2012
- tammikuu 2012
- joulukuu 2011
- marraskuu 2011
- lokakuu 2011
- huhtikuu 2011
- maaliskuu 2011
- helmikuu 2011
- tammikuu 2011
- joulukuu 2010
- marraskuu 2010
- lokakuu 2010
- syyskuu 2010
- elokuu 2010
- heinäkuu 2010
- kesäkuu 2010
- toukokuu 2010
- huhtikuu 2010
- maaliskuu 2010
- helmikuu 2010
- tammikuu 2010
- joulukuu 2009





Löysin hauskan kommentin mm. nimien muuttumattomuudesta (tai oletuksen virheellisyydestä.) Kommenteissa on muuten juttua myös SSN:stä (jenkkien sotusta.)
http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/