■81975 / ) |
Re[1]: レコードのSELECT,UPDATE処理時の排他制御について |
□投稿者/ Jitta (224回)-(2016/11/26(Sat) 08:44:37)
|
■No81893 (あさ さん) に返信 > ある予約システムを作成しています。
ここに書かれているのは「予約をする」ことのみです。 では、「約が実行された」時は、どうするのでしょうか。
> 以下のような予約一覧テーブル(分かりやすくするために簡略化します)があるとします。 > 予約Noはオートナンバーです。 > > 予約一覧テーブル > 予約No 部屋No 氏名 > 10000 1 鈴木 > 10001 2 山田 > 10002 3 佐藤 > > 新たに予約を行う際には、いきなりUPDATEではなく、 > まずは部屋NoのMax値(ここでは3)をSELECTして、 > +1をして、部屋数の定数内であることを確認し、それから、 > UPDATE(INSERTによる)します。
簡略化してあるということですが。 当然、日付があるのでしょう。 連泊するときは、どうなるのでしょうか。1日ごとに1レコード使うのか、ということです。 その場合、2泊目は、部屋Noは、どうするのでしょうか。 1日目の予約が1件、2日目の予約が0件の場合、1日目の部屋Noは2になります。2日目の部屋Noは何番? ここで「2」にすると、2日目が1日目になる人の部屋Noはどうなる? また、1,2,3と予約が埋まった後、2の人がキャンセルしたら?
と、コードを考える前に考えなければならないことが、まだまだあるように思います。
|
|