ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

2度目の申し込み時に、重複登録および時間が被った申し込みを許可しない方法

同一人物が複数回申し込みができるシステムを作成することになりました。
申し込む内容は、以下のような情報から選択します。

番号 時間
1 11時~12時
2 11時~12時

番号 時間
3 13時~14時
4 13時~14時
番号1と2、番号3と4は同じ時間なので、同時に申し込めずどちらかのみとなります。
同時に最大2個申し込めますが、1個だけ申し込んで後からもう1個申し込めます。

配列
unsplash-logoFaris Mohammed

重複登録のチェック

1度目の登録時に番号2を選んで登録したとします。
2度目の登録時に、以前登録された番号2を取得します。
2度目の登録のチェック時に、選択された番号と、以前登録された番号が一致していたら、重複登録としてエラーにします。

時間の重複のチェック

1度目の登録時に番号2を選んで登録したとします。
2度目の登録時に、以前登録された番号2と、同じ時間の番号1を取得します。
2度目の登録のチェック時に、選択された番号と、以前登録された番号または、同じ時間の番号と一致していたら、時間の重複エラーにします。

以前登録された番号または、同じ時間の番号で、登録を許可できない番号の配列を作成し、配列に存在しないかチェックすれば、判定できます。
時間の重複チェックの方法だけで、重複登録のチェックも同時に行ってエラーにはできます。
重複登録なのか、時間の重複なのかの判別が必要であれば、それぞれにチェックが必要です。


当初はチェックが面倒だなと思いましたが、登録を許可できない番号の配列を作成すれば簡単だと気がついてからは、簡単だと認識を改めました。