sql >> Database teknologi >  >> RDS >> Oracle

Hvordan implementerer man gapless, brugervenlige ID'er i NHibernate?

En mulighed ville være at beholde en nøgletabel, der blot gemmer en stigende værdi. Dette kan introducere et par problemer, nemlig mulige låseproblemer samt yderligere hits til databasen.

En anden mulighed kan være at forfine, hvad du mener med "Brugervenligt id". Dette kunne bestå af en kombination af en dato/klokkeslæt og en kundespecifik sekvens (eller inklusive kunde-id'et). Desuden behøver dit ordre-id ikke nødvendigvis at være den egentlige nøgle på bordet. Der er ikke noget at sige til, at du ikke kan bruge en surrogatnøgle med en separat "beregnet" kolonne, som repræsenterer ordre-id'et.

Den nederste linje er, at det lyder som om du vil bruge en surrogatnøgle, men har fordelene ved en naturlig nøgle. Det kan være meget svært at have det begge veje, og meget afhænger af, hvordan du rent faktisk planlægger at bruge dataene, hvordan brugerne fortolker dataene og personlige præferencer.




  1. Sådan sætter du sql-forespørgsel i et array i yii

  2. MySQL wait_timeout bliver ikke respekteret for lang forespørgsel?

  3. Kalder psql pg_dump-kommandoen i et batch-script

  4. Få SQL-sætning efter tilføjet parametre