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对应类型设计,长度大小要做到在存的下的前提下,尽量减少浪费。这次设计是挺烂的,也就因此在之后合作开发过程中遇到不少麻烦。数据库设计可太重要了!