比如一个帖子有转发、评论、赞、踩等
这个应该是在帖子表里面有一个总数,还是直接另外一个表,用户转发一次添加一条记录,然后需要的时候来统计?
sql
DROP TABLE IF EXISTS `tz_tz`; CREATE TABLE `tz_tz` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL DEFAULT '', `description` text, `category_id` varchar(255) DEFAULT '', `created_at` int(10) unsigned NOT NULL DEFAULT '0', `updated_at` int(10) unsigned NOT NULL DEFAULT '0', `like_count` bigint(20) unsigned NOT NULL DEFAULT '0', `comment_count` bigint(20) unsigned NOT NULL DEFAULT '0', `repin_count` bigint(20) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;
个人觉得统计用的字段要放到另外一张表中,这样符合数据库设计规范,另外,统计的数更新可以在mysql中加触发器,每次操作更新count
首先每次显示这些总数都去查表count一下不太合理,我建议这些字段还是需要单独记录。记录的方式看你对数据统计的实时性要求高不高 高的话每次操作完就更改 不高的话可以定期定时任务统计一下 比如一小时、一天等。至于是否放在一张表,看你是否经常用到这些数据,如果不是经常需要跟随这个帖子用到,一般还是分开比较好。