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

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

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

评论表:文章评论内容。

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

有两个触发器,用于管理文章的评论次数。评论表增加一条记录,则文章表对应记录的评论数增加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. Python xml 模块

    Python xml 模块 TOC 什么是xml? xml和json的区别 xml现今的应用 xml的解析方式 xml.etree.ElementTree SAX(xml.parsers.expat) ...

  2. Python中文词频统计

    以下是关于小说的中文词频统计 这里有三个文件,分别为novel.txt.punctuation.txt.meaningless.txt. 这三个是小说文本.特殊符号和无意义词 Python代码统计词频 ...

  3. splay详解(一)

    前言 Spaly是基于二叉查找树实现的, 什么是二叉查找树呢?就是一棵树呗:joy: ,但是这棵树满足性质—一个节点的左孩子一定比它小,右孩子一定比它大 比如说 这就是一棵最基本二叉查找树 对于每次插 ...

  4. 从.Net到Java学习第三篇——spring boot+mybatis+mysql

    从.Net到Java学习第一篇——开篇 环境:mysql5.7 新建mysql数据库demo,然后执行如下sql脚本进行数据表创建和数据初始化: -- ------------------------ ...

  5. 查询SQLSERVER执行过的SQL记录(历史查询记录)

    有的时候,需要知道近段时间SQLSERVER执行了什么语句,可以用下面的方法: SELECT TOP 1000 QS.creation_time, SUBSTRING(ST.text, (QS.sta ...

  6. Linux中DHCP服务器的简单配置

    我安装了两台linux系统,一个作为服务器,一个客户端 两个都有3个网卡, 后两个网卡聚合为zhi一个网卡:Linux 网卡聚合 两台电脑都一样. 那么如何为这个聚合网卡进行DHCP的分配呢? 1.由 ...

  7. [20190415]10g下那些latch是共享的.txt

    [20190415]10g下那些latch是共享的.txt http://andreynikolaev.wordpress.com/2010/11/23/shared-latches-by-oracl ...

  8. Oracle——DQL、DML、DDL、DCL

    1.DQL:数据查询语言 基本结构:由select.from.where组成 子句组成的查询块:    SELECT <字段名表>    FROM <表或视图名>    WHE ...

  9. 一道CTF题引发的思考——SSI注入

    题目地址:http://210.32.4.22/index.php 一开始我一直考虑的用<!--#include file="文件"-->的格式进行读取文件,但是一直不 ...

  10. Java文件下载:如何编码文件名称以及如何设置HttpServletResponse

    在下载文件时,经常遇到文件名乱码等问题. 本文说明如何编码文件名,以及如何设置HttpServletResponse对象. 1,如何编码文件名 String userAgent = request.g ...