C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 140 を表示中)
■82041 / )  Re[3]: レコードのSELECT,UPDATE処理時の排他制御について
□投稿者/ あさ (12回)-(2016/12/02(Fri) 10:24:50)
No82040 (あさ さん) に返信
> ■No81975 (Jitta さん) に返信
>
> ご返事遅れましてすみません。
> 今回作成している予約システムは、宿泊業のものではなく、
> 一時保育に関するものでして。
> なので、基本的には当日1日の特定時間のみ使用、1日ごとの利用になります。
> もし、連続で予約を入れたい場合は、それぞれの予約で、部屋NOも
> 変わり得ます。
> 予約が確定された、予約者が実際に来た、預けた、迎えに来た、精算して終了した、
> の各段階をフラグで管理します。
>
> これらのことを踏まえまして、お答えします。
>
>>1日目の予約が1件、2日目の予約が0件の場合、1日目の部屋Noは2になります。2日目の部屋Noは何番?
> 2日目の部屋NOは1になります。
>
>>ここで「2」にすると、2日目が1日目になる人の部屋Noはどうなる?
> 2日目の予約で部屋NO「2」が埋まっている場合、「1」が空いていれば「1」になります。
> 「1」が空いてなければ「3」になります。
> 実際のコードでは、すでに埋まっている部屋NOを昇順で並べ、空きがあるかを検索、空きがなければ+1します。
>
>>また、1,2,3と予約が埋まった後、2の人がキャンセルしたら?
> 2の人がキャンセルした場合は、次の予約は「2」に入ります。
>
> ありがとうございます。
>
>>■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の人がキャンセルしたら?
>>
>>と、コードを考える前に考えなければならないことが、まだまだあるように思います。
返信 編集キー/


管理者用

- Child Tree -