アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは
あるプロジェクトでIDの連番を生成していますが、
年度毎に1から振り直します。
例:2009_001,2009_002...
2010_001...
Oracleの順序(シーケンス)を使うとしたら、年度毎にどうやって順序を初期化するのでしょうか?
そもそもこの場合、開発では順序を利用するべきではないでしょうか?
よろしくお願いします。

A 回答 (1件)

年度毎のシーケンスを持てばいいのではないでしょうか。



要件次第ですが、年度が変わっても過去のデータを作成する必要はないのですか。1つのシーケンスを使い回すと、前の年度で作成された番号がまた採番されてしまいます。そこで過去年度のデータを作ろうとすると、番号が重複してしまいます。

年度末に休んでいて、年度が変わってから出社して入力したら、番号が重複して入力できないのは変ですよね。

プログラムで年度を判定しシーケンスを使い分けてあげるのはどうでしょうか。翌年度用のシーケンスは年次処理で作成するジョブを用意しておけばOKでしょう。

絶対に過去年度のデータは作成されないのなら、年次処理(4月01日00時00分に起動する)でシーケンスを初期化するジョブを組めばよいと思います。

シーケンスを使わないなら、採番テーブルを作ってロジックで管理するしかないと思います。その場合でも、年度毎に持っておいた方が無難だと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!