Identifikatorer skal ikke behandles som regnetall
Talltegn i en identifikator betyr ikke at feltet skal summeres eller konverteres numerisk.
En kundekode som 00041 og tallet 41 har forskjellig rolle. Den første identifiserer en post; den andre kan brukes i en beregning. Datatype skal velges etter betydning, ikke etter hvilke tegn verdien inneholder.
Numerisk konvertering kan fjerne innledende nuller, endre lange sifferrekker eller gi vitenskapelig notasjon. Slike endringer er særlig farlige når identifikatoren brukes som nøkkel til faktura, kunde eller betaling.
Tre kundekoder fra forskjellige kilder
Syntetisk eksempel med lokale registerkoder.
| Kilde | Identifikator | Hva må bevares? |
|---|---|---|
| System A | 00041 | Fem tegn og kildeomfang |
| System B | 41 | To tegn og annen kodeavtale |
| System C | K-41 | Bokstav, bindestrek og sifre |
| Feil sammenslåing | Alle blir tallet 41 | Forskjellige identiteter kan kollidere |
Det er mulig at A og B gjelder samme kunde, men det må dokumenteres med en koblingstabell eller annen bekreftet identitet. Tallkonverteringen er ikke et bevis på sammenheng.
Fastsett identitetens kontrakt
Beskriv tegnsett, lengde, store og små bokstaver, unikhetsomfang og normalisering. Noen identifikatorer tåler fjerning av visningsmellomrom; andre er følsomme for tegnendringer. En felles «rens tekst»-funksjon bør ikke bestemme dette uten feltgrunnlag.
JSON skiller strenger fra tall. Et identitetsfelt kan derfor representeres som tekst selv om verdien består av sifre. Ved CSV må importens kolonnebehandling avklares eksplisitt, fordi filen ikke nødvendigvis bærer en sterk datatype.
- Test koder med innledende nuller.
- Test lange sifferrekker og blandede tegn.
- Sammenlign råverdi med lagret og eksportert verdi.
- Hold teknisk rad-ID atskilt fra forretningsidentitet.
- Kontroller kollisjoner etter normalisering.
Når identiteten allerede er endret
Finn originalverdi i kilderegister eller tidligere dokumentasjon. Ikke sett inn nuller til en antatt lengde. En skadet kode kan ha flere mulige opphav, og en gjettet korreksjon kan knytte posten til feil kunde.
Selv en perfekt bevart kode er ikke automatisk unik på tvers av selskaper og systemer. Dokumenter omfanget og bruk en sammensatt nøkkel der det er nødvendig. Et bilagsnummer fra ett foretak kan være identisk med nummeret i et annet.
Godkjenn overføringen når identiteten er bevart og koblingen til riktig objekt kan forklares. Riktige totalsummer erstatter ikke identitetskontroll.
Se sammensatte nøkler og bankreferanser med nuller.
Et internt løpenummer kan fortsatt være et heltall i databasen hvis kontrakten faktisk beskriver det slik. Problemet er å overføre denne behandlingen til eksterne identifikatorer uten vurdering. Hold teknisk identitet og kundens opprinnelige kode som separate opplysninger, og test begge gjennom en full overføring.