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

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

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

评论表:文章评论内容。

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

有两个触发器,用于管理文章的评论次数。评论表增加一条记录,则文章表对应记录的评论数增加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版本-数据库设计的更多相关文章

  1. 四、Java多人博客系统-2.0版本

    由于时间关系,多人博客系统这里穿插一个2.0版本. 2.0版本本来是打算用于建立个人网站,但是后来发现个人建站需要购买域名服务器,还需要备案,很繁琐.最终放弃.完成此版本,最终也只是作为技术演练.此版 ...

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

    docker是当下很热门的技术,是对之前的部署系统方式的彻底改变.之前部署系统,需要安装数据库.初始化数据库,安装jdk,配置jdk,部署应用程序,修改配置文件等,很繁琐.一般现场运维人员很难搞定,现 ...

  3. 六、Java多人博客系统-2.0版本-代码实现

    1.前后端分离,后端使用spring boot,只负责提供数据,对外暴露Restful API.前端使用vue,只负责展示数据和向后台提交数据. 2.数据库使用mariadb,存储所有数据. 3.前端 ...

  4. 三、Java多人博客系统-技术架构

    多人博客系统1.0版本,架构和技术还是很简单和很传统的. 1.技术 前端:jsp.html.css.javascript.jquery.easyui.echarts 后端:spring mvc.Hib ...

  5. 二、Java多人博客系统-演变

    任何项目都是由小到大,逐步演变的.自己写的这个博客系统也不例外. 更新日志如下: 一.2014年底-2015年初 功能及技术: 1.定位为个人网站,介绍自己情况和发布文章等. 2.首页模块有:个人简介 ...

  6. 一、Java多人博客系统-开篇

    作为一个程序员,工作之外的不断学习是必须的.这个项目是我个人课外学习和练手的项目.最开始是一个个人网站.当时发现京东云可以免费部署网站的,就立即写了一个网站,当时就使用jsp技术,可以实现发布博客.评 ...

  7. 【完全开源】Django多人博客系统——支持MarkDown和tinyMce

    目录 说明 功能 如何使用 说明 这是一个用Django开发的多人博客系统,功能简单,但完全满足公司内部或个人的博客使用需求.支持普通富文本编辑器(tinyMCE)和MarkDown编辑器 由于嫌弃D ...

  8. Java程序员博客系统推荐!我调研了100来个 Java 开源博客系统,发现这 5 个最好用!

    大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 最近想倒腾一下博客,看了很多现成的比较成熟的开源博客系统,自己也简单从下面几个维度总结对比了一下: star数量 ...

  9. 推荐一款自研的Java版开源博客系统OneBlog

    OneBlog 一款超好用的Java版开源博客      Introduction 简介 OneBlog 一个简洁美观.功能强大并且自适应的Java博客.使用springboot开发,前端使用Boot ...

随机推荐

  1. iview-admin框架运行步骤

    第一步: 前往github下载整个iview-admin框架的全部源码 github地址: https://github.com/iview/iview-admin 第二步: 点击Clone or d ...

  2. loj#2531. 「CQOI2018」破解 D-H 协议(BSGS)

    题意 题目链接 Sol 搞个BSGS板子出题人也是很棒棒哦 #include<bits/stdc++.h> #define Pair pair<int, int> #defin ...

  3. Net中获取程序集路径

      从内存中加载的程序集,无路径   IIS中路径 protected void Page_Load(object sender, EventArgs e) { Response.Write(&quo ...

  4. Python开发爬虫之理论篇

    爬虫简介 爬虫:一段自动抓取互联网信息的程序. 什么意思呢? 互联网是由各种各样的网页组成.每一个网页对应一个URL,而URL的页面上又有很多指向其他页面的URL.这种URL之间相互的指向关系就形成了 ...

  5. 安卓开发:UI组件-RadioButton和复选框CheckBox

    2.5RadioButton 为用户提供由两个及以上互斥的选项组成的选项集. 2.5.1精简代码 在按钮变多之后,多次重复书写点击事件有些繁琐,我们在这里创建一个事件OnClick,每次点击时调用该事 ...

  6. Vue一个案例引发「动画」的使用总结

    项目开发中动画有着很重要的作用,而且也是用到的地方非常多,例如:鼠标的进入离开,弹窗效果,组件的显示隐藏,列表的切换等等,可以说我们网页上的动画无处不在,也有人说了,这些东西也可以不使用动画. 对,你 ...

  7. PJSUA2开发文档--第八章 好友(Buddy)类

    8  好友(存在)Buddy PJSUA2的功能是围绕Buddy类为中心展开的.该类表示一个远端好友(伙伴,一个人或一个SIP端点). 8.1 子类化Buddy类 要使用Buddy类,通常应创建子类, ...

  8. java实现Windows记事本

    给大家分享下我之前的作品: 源文件下载: 链接:https://pan.baidu.com/s/1N45VsS9aVgmvhvYjRLxBrA  提取码:b9fg  源码: JF_Notpad.jav ...

  9. 不能收缩 ID 为 %s 的数据库中 ID 为 %s 的文件,因为它正由其他进程收缩或为空。

    SQLServer数据库通常都不建议进行SHRINKFILE操作,因为SHRINKFILE不当会造成一定的性能问题. 但是当进行了某些操作(例如某个超大的日志类型表转成分区表切换了数据文件),数据库某 ...

  10. VMware实现iptables NAT及端口映射

    1. 前言 本文只讲解实战应用,不会涉及原理讲解.如果想要了解iptables的工作流程或原理可参考如下博文. 具体操作是在PC机的VMware虚拟机上进行的,因此涉及的地址都是内网IP.在实际工作中 ...