問題:
- 新しいアイテム -001 が作成されましたが、まだ保存されていません
- 新しいアイテム -002 が作成されましたが、まだ保存されていません
- アイテム -001 はキャンセルされました
ID-001はどうする?
最も簡単な解決策は、アイテムが確実に保管されるまで ID を割り当てないことです。
別の方法として、最終的にアイテムを保存するときに、最初のフリー ID を検索します。ステップ 2 のアイテム (#2) がステップ 1 のアイテムの前に保存された場合、#2 は ID -001 を取得します。#1 が保存されると、保存ロジックは、要求された ID (-001) が使用されていることを確認するため、-002 を割り当てます。そのため、ID が再割り当てされます。
最後に、新しいアイテムを作成するときに、次のフリー ID を簡単に見つけることができます。上記の 3 つの手順では、最初に -001 があるはずの場所にギャップがあることを意味します。ここで新しいアイテムを作成すると、コードは -001 が未使用であることを認識し、それを新しいアイテムに割り当てます。
しかし、それはあなたが指定しなかった要件に完全に依存します。現在、-001 は -002 よりも後に作成されました。それが許可されているかどうかはわかりません。さらに、任意の時点で、アイテムがキャンセルされたナンバリングにギャップが生じる可能性があります. レポート期間の最後に発生すると、エラー (-033、-034、-036) が発生します。
この請求書番号などの代わりに、自動インクリメントの主キーを含めることもできます。