我有以下表格设置:
CREATE TABLE IF NOT EXISTS `appointment` (
`idappointment` int(11) NOT NULL AUTO_INCREMENT,
`appdate` datetime NOT NULL,
`appnote` varchar(255) DEFAULT 'Please enter a relevant note',
`chair_idchair` int(11) NOT NULL,
PRIMARY KEY (`idappointment`,`chair_idchair`),
KEY `fk_appointment_chair_idx` (`chair_idchair`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
appdate
该字段的
典型值为:2013-07-05 08:30:00
因此
2013-07-05 09:00:00
没有时间戳值,并且所有约会都以固定的时间间隔不同。
对于我的应用程序,我需要确保没有一个椅子在同一时间间隔被双重预订,因此我想创建一个由appdate
字段和chair_idchair
字段组成的复合主键,然后将此复合主键设置为唯一。
我的问题是如何在 MySQL 中做到这一点,更重要的是,它实际上是确保不能从 DB 方面预订双重预订的最佳方式。我不想仅仅依靠应用程序来执行此检查,因为用户将同时从多个位置进行预订。