我有一张这样的桌子:
`id` int(11) NOT NULL AUTO_INCREMENT,
`torderid` int(11) DEFAULT NULL,
`tuid` int(11) DEFAULT NULL,
`tcontid` int(11) DEFAULT NULL,
`tstatus` varchar(10) DEFAULT 'pending',
这里的规则是同一个用户 UID 不能有多个具有相同 contid 的挂单。
所以我能做的第一件事就是检查是否有这样的挂单:
select count(id) into @cnt from tblorders where tuid = 1 and tcontid=5 and tstatus like 'pending';
如果它 > 0 则不能插入。
或者我可以为三列创建一个唯一索引,这样表就不会接受重复的新记录。
问题是:哪种方式更快?因为那将是一个大型数据库...