Mysql
將日期範圍放在 mySQL 中的表中的最佳方法
我正在設計一個基本上是預訂引擎的系統。它使用單獨的表來儲存房間數據和單獨的表來儲存它的可用性資訊(可用日期)。我被困在可用性表上進行設計。
這是我房間桌子上的結構,
room_id room_type room_name etc...
這是我目前的可用性表結構
room_id (int) week_id (int) date (datetime) availability (boolean)
有沒有更好的方法來實現這一點?請幫助。即使是最微小的建議也將不勝感激
注意:不是 MySQL 人,我使用 MS SQL。我會盡量少關註一開始是否有房間,並嘗試專注於標記房間的預訂日期。如果您使用儲存預訂的表;
CREATE TABLE [Reservations] ( ReservationID INT NOT NULL, RoomID INT NOT NULL, StartDate SmallDate, --first day of reservation Duration INT) --number of days being reserved
然後,當您想查看一天有哪些房間可用時,您可以搜尋當天正在使用的房間(使用 startdate 和 duration 列)並得到相反的結果。這也使您不必嘗試為每個可能的預留槽分配空間,而只需在預留時將一條記錄添加到預留表中。