目录
1. 第5章 数据库设计
1.1. 数据库概念设计
1.1.1. 用户信息实体
1.1.2. 文章信息实体
1.1.3. 评论信息实体
1.1.4. 附件信息实体
1.1.5. 类别信息实体
1.1.6. 日志信息实体
1.2. 数据库表结构设计
基于Springboot的个人博客系统的设计与实现
本数据库设计中重要的一环首先就是概念设计,也就是说,要从实际问题出发,排除非本质的东西,抽象出现实的数据结构之客观规律。
为了把用户的数据要求清晰明确的表达出来,通常要建立一个概念性的数据模型。这个模型不关心具体的实现方式和细节,而是主要关心数据在系统中的各个处理阶段的状态。最常用的E-R图是一种概念模型,主要用于所有信息的建模,E-R模型中包含“实体”,“联系”,“属性”。它是数据库中的各个实体及其属性之间关系的一种抽象显示。本系统中所使用的数据库主要实体如下:
用户信息实体包括账号、密码、邮箱、昵称等属性,如图5.1所示。
文章信息实体包括文章名称、文章正文、作者、类型等属性,如图5.2所示。
图5.2 文章信息实体图
评论信息实体包括评论人姓名、评论内容、是否通过审核、文章id等属性,如图5.3所示。
图5.3 评论信息实体图
附件信息实体包括附件id、附件名称、附件类型等属性,如图5.4所示。
类别信息实体包括类别id、类别名称、调整链接等属性,如图5.5所示。日志信息实体
日志信息实体包括日志id、访问模块名称、访问时间等属性,如图5.6所示。
图5.6 日志信息实体图
根据对系统的需求及功能模块的分析,设计出了个人博客系统的所有数表,如下所示。
1、用户表
用户表(t_users)的主要作用是存储系统用户相关的信息数据,该表包括了username、password、screen_name等字段,其详细设置如表5.1所示。
表5.1 用户表
字段名称 | 数据类型 | 长度 | 能否为空 | 字段说明 |
uid | int | 10 | 否 | 用户表主键 |
username | varchar | 50 | 能 | 账号 |
password | varchar | 50 | 能 | 密码 |
| varchar | 200 | 能 | 邮箱 |
screen_name | varchar | 50 | 能 | 昵称 |
created | int | 10 | 能 | 添加时间 |
2、文章表
文章表(t_contents)的主要作用是存储系统文章/页面相关的信息数据,该表包括了title、slug、tags等字段,其详细设置如表5.2所示。
表5.2 文章表
字段名称 | 数据类型 | 长度 | 能否为空 | 字段说明 |
cid | int | 10 | 否 | 文章表主键 |
title | varchar | 200 | 能 | 文章名称 |
slug | varchar | 200 | 能 | 备注 |
created | varchar | 10 | 能 | 创建时间 |
modified | int | 10 | 能 | 修改时间 |
content | text | 能 | 文章正文 | |
author_id | int | 10 | 能 | 作者 |
type | varchar | 15 | 能 | 类型(页面/文章) |
status | varchar | 15 | 能 | 发布状态 |
tags | varchar | 200 | 能 | 文章标签 |
categories | varchar | 200 | 能 | 文章类别 |
hits | int | 10 | 能 | 点击量 |
comments_num | int | 10 | 能 | 评论数量 |
allow_comment | int | 1 | 能 | 是否允许评论 |
allow_feed | int | 1 | 能 | 是否允许订阅 |
3、评论表
评论表(t_comments)的主要作用是存储系统评论相关的信息数据,该表包括了cid、author、等字段,其详细设置如表5.3所示。
表5.3 评论表
字段名称 | 数据类型 | 长度 | 能否为空 | 字段说明 |
coid | int | 10 | 否 | 评论表主键 |
cid | int | 10 | 能 | 关联文章表id |
created | varchar | 10 | 能 | 创建时间 |
author | varchar | 200 | 能 | 评论人姓名 |
owner_id | int | 10 | 能 | 评论人id |
author_id | int | 10 | 能 | 文章作者id |
| varchar | 200 | 能 | 邮箱 |
ip | varchar | 50 | 能 | Ip |
content | text | 能 | 评论内容 | |
status | int | 10 | 能 | 是否通过审核 |
4、附件表
附件表(t_attach)的主要作用是存储系统上传文件相关的信息数据,该表包括了fname、ftype、fkey等字段,其详细设置如表5.4所示。
表5.4 附件表
字段名称 | 数据类型 | 长度 | 能否为空 | 字段说明 |
id | int | 10 | 否 | 附件表主键 |
fname | int | 100 | 能 | 附件名称 |
ftype | varchar | 50 | 能 | 附件类型 |
fkey | varchar | 100 | 能 | 附件存储路径 |
author_id | int | 10 | 能 | 添加人id |
created | int | 10 | 能 | 创建时间 |
5、类别表
类别表(t_metas)的主要作用是存储系统文章归类/标签相关的信息数据,该表包括了name、description等字段,其详细设置如表5.5所示。
表5.5 类别表
字段名称 | 数据类型 | 长度 | 能否为空 | 字段说明 |
mid | int | 10 | 否 | 类别表主键 |
name | int | 200 | 能 | 类别名称 |
url | varchar | 200 | 能 | 跳转的链接 |
type | varchar | 30 | 能 | 类别的类型(标签/链接/分类) |
description | int | 10 | 能 | 描述 |
sort | int | 10 | 能 | 排序 |
6、文章类别关联表
文章类别关联表(t_relationships)的主要作用是存储系统文章与归类/标签关联关系相关的信息数据,该表包括了cid、mid等字段,其详细设置如表5.6所示。
表5.6 文章类别关联表
字段名称 | 数据类型 | 长度 | 能否为空 | 字段说明 |
mid | int | 10 | 否 | 类别表主键 |
cid | int | 10 | 否 | 文章表id |
7、系统主题表
系统主题表(t_options)的主要作用是存储系统系统主题设置相关的信息数据,该表包括了name、value字段,其详细设置如表5.7所示。
表5.7 系统主题表
字段名称 | 数据类型 | 长度 | 能否为空 | 字段说明 |
name | varchar | 200 | 能 | 系统主题表主键 |
value | varchar | 200 | 能 | 主题内容 |
8、日志表
日志表(t_logs)的主要作用是存储系统系统运行产生日志相关的信息数据,该表包括了action、data等字段,其详细设置如表5.8所示。
表5.8 日志表
字段名称 | 数据类型 | 长度 | 能否为空 | 字段说明 |
id | int | 10 | 否 | 日志表主键 |
action | int | 100 | 能 | 访问模块名称 |
data | varchar | 2000 | 能 | 请求参数 |
ip | varchar | 30 | 能 | 请求ip |
created | int | 10 | 能 | 访问时间 |
author_id | int | 10 | 能 | 访问人id |