【发布时间】:2012-01-12 04:04:15
【问题描述】:
我们正在构建一个预订系统。三个模块
- 客户
- 房间
- 预订
客户可以预订一间或多间客房并预订不同的日期。在预订房间时,我想搜索在日期 A 和日期 B 之间可以预订哪些房间。
表格(可能的解决方案) 客户(ID,姓名,......) 房间(id,房间号,房间类型,......) bookings(id, room_id, fromDate, toDate)
目前我有这样的表格
CREATE TABLE IF NOT EXISTS `bookings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`checkin` datetime NOT NULL,
`checkout` datetime NOT NULL,
`advance` int(11) NOT NULL,
`amount` int(11) NOT NULL,
`booking_details_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `bookings_rooms` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`booking_id` int(11) NOT NULL,
`room_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
CREATE TABLE IF NOT EXISTS `customers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`age` int(11) NOT NULL,
`address` varchar(255) NOT NULL,
`nationality_id` int(11) NOT NULL,
`mobile` int(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `rooms` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`number` int(4) NOT NULL,
`category_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
需要帮助设计数据库,这是更好的方法。
【问题讨论】:
-
@Bob 抱歉更新了。我需要帮助设计表格
标签: sql database-design schema database-schema