MySQL 数据库 统计 表设计问题
高洛峰
高洛峰 2017-04-17 12:08:09
[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;
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
天蓬老师

个人觉得统计用的字段要放到另外一张表中,这样符合数据库设计规范,另外,统计的数更新可以在mysql中加触发器,每次操作更新count

大家讲道理

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号