回答編集履歴

2

加筆修正

2019/04/23 03:39

投稿

退会済みユーザー
test CHANGED
@@ -1,8 +1,8 @@
1
- 簡単にするなら、
1
+ 簡単に汎用的に対処するなら、
2
2
 
3
- 空き時間も予約済みも含めた「予約可能な時間帯」テーブルを作っておいて、
3
+ 空き時間も予約済みも含めた「予約状況」テーブルを作っておいて、
4
4
 
5
- 予約が入り次第「予約可能な時間帯」テーブルもメンテしておけば、
5
+ 予約が入り次第「予約状況」テーブルもメンテしておけば、
6
6
 
7
7
  空き時間も求めやすいのではないかと。
8
8
 
@@ -11,3 +11,17 @@
11
11
  レコード数の増加を気にするのであれば、
12
12
 
13
13
  定期的に過去の時間帯を削除すればよいかと。
14
+
15
+
16
+
17
+ SQLって一般的に、
18
+
19
+ ないものを絞り込むことよりも、
20
+
21
+ あるものを絞り込むことに特化しているので、
22
+
23
+ 空き時間なのか予約済みなのかを示すフラグをテーブル内に設けて
24
+
25
+ インデックスを張っておけば、
26
+
27
+ 空き時間はすぐに抽出できるはずです。

1

見直し

2019/04/23 03:39

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  簡単にするなら、
2
2
 
3
- 空き時間も含めた「予約可能な時間帯」テーブルを作っておいて、
3
+ 空き時間も予約済みも含めた「予約可能な時間帯」テーブルを作っておいて、
4
4
 
5
5
  予約が入り次第「予約可能な時間帯」テーブルもメンテしておけば、
6
6