Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Lückenlose Sequenz, bei der mehrere Transaktionen mit mehreren Tabellen beteiligt sind

Wie Sie bereits festgestellt haben, skalieren lückenlose Sequenzen einfach nicht. Entweder laufen Sie Gefahr, Werte zu verlieren, wenn ein Rollback auftritt, oder Sie haben einen Serialisierungspunkt, der die Skalierung eines Multi-User-Systems mit gleichzeitigen Transaktionen verhindert. Sie können nicht beides haben.

Mein Gedanke wäre, wie wäre es mit einer Nachbearbeitungsaktion, bei der Sie jeden Tag einen Prozess haben, der bei Geschäftsschluss ausgeführt wird, auf Lücken prüft und alles neu nummeriert, was neu nummeriert werden muss?

Ein letzter Gedanke:Ich kenne Ihre Anforderung nicht, aber ich weiß, dass Sie sagten, dies sei "gesetzlich vorgeschrieben". Nun, fragen Sie sich, was haben die Menschen gemacht, bevor es Computer gab? Wie würde diese "Anforderung" erfüllt werden? Angenommen, Sie haben einen Stapel leerer Formulare, die mit einer „Sequenz“-Nummer in der oberen rechten Ecke vorgedruckt sind? Und was passiert, wenn jemand Kaffee auf diesem Formular verschüttet hat? Wie wurde das gehandhabt? Es scheint, dass Sie eine ähnliche Methode benötigen, um dies in Ihrem System zu handhaben.

Hoffe das hilft.