Java多人博客系统-2.0版本-数据库设计

Posted yangtze-yufei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多人博客系统-2.0版本-数据库设计相关的知识,希望对你有一定的参考价值。

数据库设计表如下:文章类别表、文章表、评论表、留言表。

文章列表表:存放文章类别,首页菜单生成也是从这个表取的。

文章表:存放文章标题、发表时间、内容等信息。

评论表:文章评论内容。

留言表:用户发表的留言。

 

有两个触发器,用于管理文章的评论次数。评论表增加一条记录,则文章表对应记录的评论数增加1,评论表删除一条记录,则文章表对应记录的评论数减去1。

详细的sql如下:

-- 1、创建库
drop database if exists blog; -- 直接删除数据库,不提醒
create database blog; -- 创建数据库
use blog; -- 选择数据库


-- 2、创建表
--
-- table structure for table `bll_article` 文章
--
drop table if exists `bll_article`;
create table `bll_article` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘主键‘,
  `createtime` datetime default current_timestamp comment ‘创建时间‘,
  `creator` varchar(60) not null comment ‘创建人‘,
  `typeid` bigint(20) default null comment ‘文章所属类型id‘,
  `title` varchar(50) default null comment ‘文章标题‘,
  `content` varchar(10000) default null comment ‘文章内容‘,
  `comcount` int(11) default ‘0‘ comment ‘文章被评论条数‘,
  `readcount` int(11) default ‘0‘ comment ‘文章被阅读条数‘,
  `suggestcount` int(11) default ‘0‘ comment ‘文章被点赞次数‘,
  primary key (`id`)
) engine=innodb default charset=utf8 comment=‘用户发表的文章‘;


--
-- table structure for table `bll_articletype` 文章类别
--
drop table if exists `bll_articletype`;
create table `bll_articletype` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘主键‘,
  `createtime` datetime default current_timestamp comment ‘创建时间‘,
  `creator` varchar(60) not null comment ‘创建人‘,
  `typename` varchar(50) default null comment ‘文章类型名称‘,
  `description` varchar(50) default null comment ‘描述‘,
  primary key (`id`)
) engine=innodb default charset=utf8 comment=‘文章类型‘;

--
-- table structure for table `bll_commont` 评论
--
drop table if exists `bll_comment`;
create table `bll_comment` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘主键‘,
  `createtime` datetime default current_timestamp comment ‘创建时间‘,
  `creator` varchar(60) not null comment ‘创建人‘,
  `articleid` bigint(20) default null comment ‘被评论的文章id‘,
  `comcontent` varchar(2000) default null comment ‘评论内容‘,
  `email` varchar(200) default null comment ‘评论人邮箱‘,
  primary key (`id`)
) engine=innodb default charset=utf8 comment=‘对文章的评论信息‘;

--
-- table structure for table `bll_leavemessage` 留言
--
drop table if exists `bll_leavemessage`;
create table `bll_leavemessage` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘主键‘,
  `createtime` datetime default current_timestamp comment ‘创建时间‘,
  `creator` varchar(60) not null comment ‘创建人‘,
  `content` varchar(2000) default null comment ‘留言内容‘,
  `email` varchar(200) default null comment ‘留言人邮箱‘,
  primary key (`id`)
) engine=innodb default charset=utf8 comment=‘留言‘;


-- 3、创建触发器
-- (1)评论表增加一条记录,则文章表对应记录的评论数增加1
create trigger addcomcount
after insert on bll_comment
for each row
	update bll_article set comcount=comcount+1 where id=new.articleid;


-- (2)评论删除一条记录,则文章表对应记录的评论数减去1
create trigger pluscomcount
after delete on bll_comment
for each row
	update bll_article set comcount=comcount-1 where id=old.articleid;


-- 初始化数据
insert into bll_articletype(creator,typename,description) values (‘tim‘,‘编程‘,‘编程技术、设计等‘);
insert into bll_articletype(creator,typename,description) values (‘tim‘,‘感悟‘,‘人生感悟等‘);
insert into bll_articletype(creator,typename,description) values (‘tim‘,‘摄影‘,‘拍摄的照片等‘);
insert into bll_articletype(creator,typename,description) values (‘tim‘,‘英语‘,‘英语文章‘);

  

以上是关于Java多人博客系统-2.0版本-数据库设计的主要内容,如果未能解决你的问题,请参考以下文章

七Java多人博客系统-2.0版本-docker部署

多人博客项目(数据库设计+Django配置)

qt+opencv实现人脸识别打卡系统2.0

JAVA面向对象编程课程设计——多人扫雷对战

需求说明书2.0

设计node.js搭建多人博客的思路(不讲数据库)