シナリオ:WAMPサーバー、InnoDBテーブル、一意のIDフィールドの自動インクリメント[ INT(10)
]、100以上の同時SQLリクエスト。必要に応じて、VB.Netも使用する必要があります。
私のデータベースには自動インクリメントフィールドがあり、保存された新しい情報(サービスオーダー)ごとに一意のチケット/プロトコル番号を生成するために使用されます。
問題は、この番号を毎年リセットする必要があることです。000001/12
つまり、2012年1月1日00:00:00に最大値まで開始し、2013年1月1日999999/12
00:00:00に最初からやり直す必要があります000001/13
。
明らかに、ある種のアルゴリズムを使用して簡単に達成できるはずですが、私はそれを行うためのより効率的な方法を見つけようとしています。検討:
データベースにはある程度の同時実行性(+100)があるため、自動インクリメントを使用する必要があります(?)。
各チケットは一意である必要があります。したがって、2012年は2013年
000001
と同じではありません。000001
自動である必要があります。(リセットなどを行うために人間の操作は必要ありません)
かなり効率的である必要があります。(監視プログラムはデータベースを毎日チェックする必要がありますが(?)、1回だけ成功するために364回失敗するため、最善の解決策ではないようです)。
私が考えることができる「最良の」アプローチは、次のように年を使用してチケット番号を保存することです。
12000001
- 12999999
(とにかく、999.999に達することはありません)
次に、監視プログラムは自動増分フィールドを2013年1月1日に設定する必要があります13000000
。
助言がありますか?
PS:読んでくれてありがとう...;)