シンプルな予約システムを作ろうとしています。reservation
予約時間と、それを予約した顧客の ID を保持するという名前のテーブルがあります(スキーマについては以下を参照してください)。そして、私は別のテーブルを持っていますroom
。このテーブルは部屋タイプ用です。したがって、各タイプの部屋には、サイズと価格のエントリがこのテーブルに含まれています。rooms
そして、各部屋についての実際のエントリー用の別のテーブル。私が作成しようとしているクエリでは、特定のタイプで、指定されたタイム スライスで利用可能な部屋を 1 つ選択したいと考えています。このようなもの;
Select number from rooms where type = 4 and available between $start-date and $end-date;
クエリの一部の間に available を書き込む方法がわかりませんでした。私のスキーマの関連部分は次のとおりです。
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`),
);