我正在尝试制作一个简单的预订系统。我有一个名为的表reservation
,其中包含预订时间和预订它的客户的 ID(请参阅下面的架构)。我还有另一张桌子room
,这张桌子是房间类型的,所以每种类型的房间在这张桌子上都有一个关于它的大小和价格的条目。还有另一张桌子rooms
,用于实际进入每个房间。在我尝试进行的查询中,我想选择一个房间,它是特定类型的,并且在给定的时间片内可用。像这样的东西;
Select number from rooms where type = 4 and available between $start-date and $end-date;
我不知道如何在查询的一部分之间编写可用的。我的架构的相关部分如下;
CREATE TABLE IF NOT EXISTS `reservation` (
`rid` int(11) NOT NULL AUTO_INCREMENT, /* reservation id */
`number` int(11) NOT NULL, /* number of the room for this reservation */
`cid` int(11) NOT NULL, /* customer id */
`begin` date NOT NULL,
`end` date NOT NULL,
PRIMARY KEY (`rid`),
);
CREATE TABLE IF NOT EXISTS `room` (
`rid` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`size` tinyint(3) unsigned NOT NULL,
`price` float NOT NULL,
PRIMARY KEY (`rid`)
);
CREATE TABLE IF NOT EXISTS `rooms` (
`number` smallint(5) unsigned NOT NULL,
`type` int(11) NOT NULL,
`available` tinyint(1) NOT NULL,
`cid` int(11) DEFAULT NULL,
PRIMARY KEY (`number`),
);