首页 > MySQL 数据库 统计 表设计问题

MySQL 数据库 统计 表设计问题

比如一个帖子有转发、评论、赞、踩等

这个应该是在帖子表里面有一个总数,还是直接另外一个表,用户转发一次添加一条记录,然后需要的时候来统计?

sqlDROP 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一下不太合理,我建议这些字段还是需要单独记录。记录的方式看你对数据统计的实时性要求高不高 高的话每次操作完就更改 不高的话可以定期定时任务统计一下 比如一小时、一天等。至于是否放在一张表,看你是否经常用到这些数据,如果不是经常需要跟随这个帖子用到,一般还是分开比较好。

【热门文章】
【热门文章】