Mysql

將日期範圍放在 mySQL 中的表中的最佳方法

  • August 6, 2019

我正在設計一個基本上是預訂引擎的系統。它使用單獨的表來儲存房間數據和單獨的表來儲存它的可用性資訊(可用日期)。我被困在可用性表上進行設計。

這是我房間桌子上的結構,

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 列)並得到相反的結果。這也使您不必嘗試為每個可能的預留槽分配空間,而只需在預留時將一條記錄添加到預留表中。

引用自:https://dba.stackexchange.com/questions/244551