1,数据库设计

论坛数据库设计还是挺有意思的,按照业务逻辑进行拆分的数据库设计。
首先,如果是一个博客就一个post表记可以了。然后考虑到论坛数据量比较大,所以在设计上有优化。
论坛把数据库分成3个数据表,这样在访问不同页面的时候都查询很快。
数据库表参考discuz 数据库设计:
只是挑了些相关字段,没有把所有字段列出了。

--论坛板块表
CREATE TABLE forum (fid mediumint(8) unsigned NOT NULL AUTO_INCREMENT,`name` char(50) NOT NULL DEFAULT '',`status` tinyint(1) NOT NULL DEFAULT '0',threads mediumint(8) unsigned NOT NULL DEFAULT '0',posts mediumint(8) unsigned NOT NULL DEFAULT '0',todayposts mediumint(8) unsigned NOT NULL DEFAULT '0',PRIMARY KEY (fid)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;--论坛帖子
CREATE TABLE `thread` (`tid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,`fid` mediumint(8) unsigned NOT NULL DEFAULT '0',`author` char(15) NOT NULL DEFAULT '',`authorid` mediumint(8) unsigned NOT NULL DEFAULT '0',`subject` char(80) NOT NULL DEFAULT '',`dateline` int(10) unsigned NOT NULL DEFAULT '0',`views` int(10) unsigned NOT NULL DEFAULT '0',`replies` mediumint(8) unsigned NOT NULL DEFAULT '0',`attachment` tinyint(1) NOT NULL DEFAULT '0',`closed` mediumint(8) unsigned NOT NULL DEFAULT '0',`status` smallint(6) unsigned NOT NULL DEFAULT '0',PRIMARY KEY (`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;--论坛帖子内容
CREATE TABLE post (pid int(10) unsigned NOT NULL AUTO_INCREMENT,fid mediumint(8) unsigned NOT NULL DEFAULT '0',tid mediumint(8) unsigned NOT NULL DEFAULT '0',`first` tinyint(1) NOT NULL DEFAULT '0',author varchar(15) NOT NULL DEFAULT '',authorid mediumint(8) unsigned NOT NULL DEFAULT '0',`subject` varchar(80) NOT NULL DEFAULT '',dateline int(10) unsigned NOT NULL DEFAULT '0',message mediumtext NOT NULL,useip varchar(15) NOT NULL DEFAULT ''PRIMARY KEY (tid,pid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2,具体分析

从页面来分析,按照用户访问路径分析。
首先用户访问论坛主页,这个地方会直接查询forum表。
里面保存了论坛板块信息,主题数量,帖子数量。

比如一个骑行网站论坛:http://www.517318.com/ (随便找的)

考虑到效率,在forum表中存储了一些冗余信息,计数的信息直接记录到了这张表里面。

然后进入主题页面

这里查询了下thread表,thread表也做了数据冗余。
当用户发帖的适合会创建一个thread表,只存标题数量,再创建一个post表,post里具体的内容。

如果是发帖,则thread表和post表都插入数据。
如果是回帖,则只记录post表同时,同时记录thread id。
只有第一个是发帖,其他的都是回帖。

3,总结

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/47343257 未经博主允许不得转载。

论坛数据库设计通过3张表,分开放不同数据,得到3种页面查询速度都很快。
这对于我们的系统设计很有启发,类似的情况还有博客数据库设计。
把博客的标题存成一张表,博客的内容存成一张表,数据分开后,两种情况查询都得到优化。

分析论坛数据库设计分析相关推荐

  1. 阿里云分析性数据库的发展历史

    详细内容请点击: 阿里云分析型数据库使用教程 (分析型数据库(AnalyticDB),是阿里巴巴自主研发的海量数据实时高并发在线分析(Realtime OLAP)云计算服务,使得您可以在毫秒级针对千亿 ...

  2. 分析型数据库受大数据市场追捧

    文章讲的是分析型数据库受大数据市场追捧,近期,大数据领域有一些值得关注的动向.首先,EMC和VMware正式公布成立新公司Pivotal.其次,Actian公司宣布收购大规模并行处理(MPP)分析数据 ...

  3. Sql Server 性能分析4 –数据库大小,数据库表大小综合性分析报表输出

    Sql Server 性能分析4 –数据库大小,数据库表大小综合性分析报表输出 一:MS SQL Report Server 报表的制作. 1.打开Microsoft Visual Studio 20 ...

  4. DEAP:使用生理信号进行情绪分析的数据库(二、实验设计与主观分析)

    来源CSDN网友HaZyiCe的授权分享 在此非常感谢HaZyiCe! 本篇文章是关于用于情绪分析的生理信号数据库DEAP简介的第二部分:实验设计与主观分析,用于情绪分析的生理信号数据库DEAP简介内 ...

  5. amazon redshift 分析型数据库特点——本质还是列存储

    Amazon Redshift 是一种快速且完全托管的 PB 级数据仓库,使您可以使用现有的商业智能工具经济高效地轻松分析您的所有数据.从最低 0.25 USD 每小时 (不承担任何义务) 直到每年每 ...

  6. 回首2018 | 分析型数据库AnalyticDB:不忘初心 砥砺前行...

    导读 分析型数据库AnalyticDB(下文简称"ADB"),是阿里巴巴自主研发.唯一经过超大规模以及核心业务验证的PB级实时数据仓库.截止目前,现有外部支撑客户既包括传统的大中型 ...

  7. AnalyticDB - 分析型数据库

    https://yq.aliyun.com/teams/31?spm=5176.7937365.1120968.ee1.78505692UL9DhG 分析型数据库(AnalyticDB)是一种高并发低 ...

  8. mysql数据库用户简单分析_如何用SQLyog来分析MySQL数据库详解

    用SQLyog来分析MySQL数据库: SOLyog的下载.安装以及使用很简单.我去了相关网站下载,它只有384K字节大小.它把两个文件(一个可执行文件.exe和一个动态链接库文件.dll)安装到C: ...

  9. 阿里巴巴下一代云分析型数据库AnalyticDB入选Forrester Wave™ 云数仓评估报告 解读

    前言 近期, 全球权威IT咨询机构Forrester发布"The Forrester WaveTM: CloudData Warehouse Q4 2018"研究报告,阿里巴巴分析 ...

最新文章

  1. QCon 2015 阅读笔记 - 团队建设
  2. 2016-05-29 for循环几种应用
  3. 在sae中使用jfinal框架开发web工程遇到的问题
  4. MySQL事务autocommit自动提交
  5. 基于用例点来度量软件规模并管理进度 之结束语
  6. php mysql int 日期格式化 string,MYSQL int类型字段的时间存放和显示 和 php的时间存放函数...
  7. H3C-IMC 自动发现功能如何使用
  8. java的基本循环结构_Java基础之(九):循环结构
  9. 需求分析与建模最佳实践
  10. 各种Python简单功能代码
  11. LoadRunner教程(28)-LoadRunner连接mysql
  12. 网络计算机自动巡检,网络设备巡检报告.doc
  13. 计算机绘画小房子教案,中班绘画《房子》教案
  14. 自制卡牌游戏Python
  15. JVM中类加载的时机
  16. nodejs mongodb
  17. GitHub上这个微信防撤回的开源项目,99%的程序员不知道
  18. 【Geoserver】GeoServer安装GDAL扩展的方法总结
  19. laravel 事务_【钢结构建筑】gmp建筑师事务所 | 杭州铁路南站
  20. 2015 usnews美国大学研究生计算机专业排名,2015年USNews美国大学经济学专业研究生排名...

热门文章

  1. 利用python + pyecharts+Pandas对北上广深等城市进行租房数据分析
  2. 何伟:Solar重磅来袭
  3. python unittest框架有哪些方法_python自带unittest框架
  4. 配置eclipse为ARM嵌入式开发板编程
  5. 索引左前缀性的三层意思
  6. 并发编程之线程池的使用及扩展和优化
  7. 颠覆传统风投后,数字货币基金未来在何处?
  8. java 英文日期转数字_DatePickerDialog的月份为英文转成数字
  9. 复试口语(五)介绍你的学校-为什么来这个学校
  10. MODISL1B数据FLAASH大气校正