Kuitenkin sosiaaliturvatunnus on varsin pitkä kirjoittaa ja välttämättä sitä ei saada kaikilta. Jos tällainen pelko on olemassa, täytyy avain luoda itse. Itse ohjelman käyttäjän ei tarvitse tietää mitään tästä uudesta muutoksesta, vaan ohjelma voi itse generoida avaimet ja käyttää niitä sisäisesti.
Valitaan vaikkapa juoksevasti generoituva numero. Jos jäseniä poistetaan jää ko. jäsenen numero vapaaksi eikä sitä yritetäkään enää käyttää. Uuden jäsenen numero olisi sitten aina suurin jäsenen numero +1.
Kelmien kerho ry ; Kenttien järjestys tiedostossa on seuraava: ;id|sukunimi etunimi |sotu |katuosoite |postinumero|postiosoite|kotipuhelin|työpuhelin| 1 |Ankka Aku |010245-123U|Ankkakuja 6 |12345 |ANKKALINNA |12-12324 | | 2 |Susi Sepe |020347-123T| |12555 |Takametsä | | | 4 |Ponteva Veli |030455-3333| |12555 |Takametsä | | |Harrastukset kirjoitetaan toiseen tiedostoon, jossa tunnusnumerolla ilmaistaan kuka harrastaa mitäkin harrastusta.
id|harrastus |aloit |viikossa 1 |kalastus | 1955 | 20 1 |laiskottelu | 1950 | 20 1 |työn pakoilu | 1952 | 40 2 |possujen jahtaaminen | 1954 | 20 2 |kelmien kerho | 1962 | 2 4 |susiansojen rakentaminen | 1956 | 15
Nyt esimerkiksi kysymykseen "Mitä Sepe Susi harrastaa" saataisiin vastus etsimällä ensin Sepe Suden tunnus (2) tiedostosta kelmit.dat. Sitten etsittäisiin ja tulostettaisiin kaikki rivit joissa tunnus on 2 tiedostosta harrastu.dat.
Myös vastaus kysymykseen "Ketkä harrastavat laiskottelua" löytyisi suhteellisen helposti.
Tämä ratkaisu vaatii muutoksen tiedostomuotoomme jo suunnitelman tässä vaiheessa, mutta toisaalta mikäli ratkaisu valitaan, voidaan sen ansiosta lisätä jatkossa vastaavia "monimutkaisia" kenttiä rajattomasti tekemällä kullekin oma "taulu".
Valitsemmekin siis tämän ratkaisun, eli annamme kullekin jäsenelle tunnusnumeron heti alusta pitäen. Itse ohjelman käyttösuunnitelmaan ei tässä vaiheessa tarvita muutoksia.