我有一个健身俱乐部日历和预订系统的以下数据库。我得到了连接到omc_date,omc_week等的omc_courses详细信息。
现在,我还想显示每个课程的预订总数。
我想了两种方法,我想知道你的意见,哪种方法更好,或者是否有更好的方法。
我的方法一。
每当会员预订或取消预订时,在omc_courses.booked中添加和删除一个。
我的方法二。
Count omc_bookings by course_id,grouped_by course_id,并将此数字添加到omc_courses.booked。
提前谢谢。
CREATE TABLE IF NOT EXISTS `omc_bookings` (
`booking_id` int(11) NOT NULL AUTO_INCREMENT,
`customer_id` int(11) NOT NULL,
`course_id` int(11) NOT NULL,
`date_enroll` date NOT NULL,
PRIMARY KEY (`booking_id`)
) .... ;
CREATE TABLE IF NOT EXISTS `omc_courses` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date_id` int(10) DEFAULT NULL,
`time` time NOT NULL,
`course_name` varchar(255) DEFAULT NULL,
`trainer_id` int(11) DEFAULT NULL,
`desc` varchar(255) DEFAULT NULL,
`capacity` int(11) DEFAULT NULL,
`active` tinyint(1) NOT NULL DEFAULT '1',
`order` int(11) DEFAULT NULL,
`booked` int(5) DEFAULT NULL,
`type` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ..... ;
there are more like omc_date, omc_week etc.发布于 2010-10-22 16:01:47
我会两个都做,因为它允许一个作为另一个的验证--如果这两个不匹配,那么您在某个地方有一个bug。但是如果你只有一个,你可能永远也找不到bug。
发布于 2010-10-22 16:16:38
我会使用count --为什么要存储一个可以如此容易计算的值呢?(使用存储值,您将面临危险,忘记在任何地方增加/减少您的数字,因此存储的数字根本不正确)
发布于 2010-10-22 16:18:31
我不会将查询得到的数据存储在数据库中,除非是在非常特殊的情况下。在您的情况下,您不需要在任何地方存储预订的号码。只需在需要时运行计数查询即可。
https://stackoverflow.com/questions/3994899
复制相似问题