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

Gap-less sekvens, hvor flere transaktioner med flere tabeller er involveret

Som du allerede har set ud til at konkludere, skalerer sekvenser uden gap simpelthen ikke. Enten risikerer du at tabe værdier, når der sker en tilbagerulning, eller også har du et serialiseringspunkt, der forhindrer et flerbruger, samtidig transaktionssystem i at skalere. Du kan ikke have begge dele.

Min tanke ville være, hvad med en efterbehandlingshandling, hvor du hver dag har en proces, der kører ved forretningens afslutning, tjekker for huller og omnummererer alt, der skal omnummereres?

En sidste tanke:Jeg kender ikke dit krav, men jeg ved, at du sagde, at dette er "påkrævet ved lov". Tja, spørg dig selv, hvad gjorde folk, før der var computere? Hvordan ville dette "krav" blive opfyldt? Hvis du antager, at du har en stak tomme formularer, der kommer fortrykt med et "sekvens"-nummer i øverste højre hjørne? Og hvad sker der, hvis nogen spilder kaffe på den formular? Hvordan blev det håndteret? Det ser ud til, at du har brug for en lignende metode til at håndtere det i dit system.

Håber det hjælper.



  1. Hvad svarer til bigint i C#?

  2. find den forløbne tid mellem to datoer i oracle sql

  3. Tjek om brugernavnet allerede eksisterer ved hjælp af PHP

  4. MYSQL auto_increment_increment