Tach!
Die "orderId" dient dazu, eine beliebige Ordnung auf der Menge der Datensätze zu definieren (unabhängig von der "id").
Eine ID hat normalerweise sowieso keine andere Funktion als einen Datensatz eindeutig zu identifizieren, also auch keine Sortierfunktion.
Nun sollen von verschiedenen db clients aus Datensätze eingefügt und entfernt werden sowie die Reihenfolge geändert werden können.
U.a. weil ich nicht alle Programme die diese Operationen ausführen selbst schreibe, möchte ich nicht die Hand dafür ins Feuer legen, dass die Folge der "orderId"s immer eine "geschlossene" bleibt.
Dann solltest du die Zugriffe nur über Stored Procedures laufen lassen, innerhalb derer du die Konsistenz selbst sicherstellen kannst. Allerdings ist es je nach DBMS auch möglich, direkt INSERT/UPDATE/DELETE aufzurufen und die SP zu umgehen. Hier hilft dann nur Disziplin aller Beteiligten.
dedlfix.