分析论坛数据库设计&分析
时间:2021-07-01 10:21:17
帮助过:47人阅读
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种页面查询速度都很快。
这对于我们的系统设计很有启发,类似的情况还有博客数据库设计。
把博客的标题存成一张表,博客的内容存成一张表,数据分开后,两种情况查询都得到优化。
版权声明:本文为博主原创文章,未经博主允许不得转载。
分析论坛数据库设计&分析
标签:数据库设计