Java Web 大作业(在线新闻发布系统)数据库设计

提要

如标题所示,要完成的是在线新闻发布系统的数据库设计,最开始这方面一直没有进展,直到搜到一些有帮助的文章后,并解决了新闻文章的存储问题(富文本编辑并直接存入方式),终于可以开展工作了!

声明:

虽然这里的数据库设计只是大部分数据库的设计,因为这个项目是合作开发的,我只会介绍我设计或说是我最熟悉的那部分数据库。

主要数据库设计

这里的设计还不是很成熟,必然存在些许问题,但总要经历这一步的嘛。

数据库webnews

简单说一说吧,存在太多问题了,文章结尾会再提到。

users数据表

类型 长度 不是null 字段说明
user_id bigint 20 * 主键 用户id,自动创建,递增
user_name varchar 255 * 用户名
user_password varchar 255 * 密码
user_phone varchar 20 手机号
user_address varchar 255 地址
user_detail varchar 255 详细信息
user_email varchar 40 * 邮箱,对照着用户id,登录使用
user_icon varchar 255 用户头像

category数据表

类型 长度 不是null 字段说明
category_id bigint 20 * 主键 新闻类型id,固定几个类型
category_name varchar 255 * 新闻类型名称

news数据表

类型 长度 不是null 字段说明
news_id bigint 20 * 主键 新闻id,自动创建,递增
category_id bigint 20 * 新闻类型id
user_id bigint 20 * 用户id
title varchar 255 * 新闻标题
content longtext * 新闻内容
state int 1 * 新闻状态(0:审核中,1:通过,2:不通过)
createTime datetime * 新闻创建时间

comments数据表

类型 长度 不是null 字段说明
comment_id bigint 20 * 主键 评论id,自动创建,递增
user_id bigint 20 * 用户id
news_id bigint 20 * 新闻id
content varchar 255 * 评论内容
createTime datetime * 评论时间

feedbacks数据表

类型 长度 不是null 字段说明
feedback_id bigint 20 * 主键 反馈id,自动创建,递增
user_id bigint 20 * 用户id
type varchar 255 * 类型,固定几种
content varchar 255 * 反馈内容
createTime datetime * 反馈时间

总结

设计存在许多不当的地方,在设计之前应该清楚的了解需求,对每个数据表命名、数据字段名、数据类型、长度、是否为null、键信息,严格把关,如数据表名应该规范,方便构造java类、sql的编写,数据类型应严格对照mybatis对应类型设计,长度大小要做到在存的下的前提下,尽量减少浪费。这次设计是挺烂的,也就因此在之后合作开发过程中遇到不少麻烦。数据库设计可太重要了!

Java Web 大作业(在线新闻发布系统)总结