基于java Web 个人网站系统设计与实现

4.1 整体功能模块分析

根据需求分析的说明,该个人网站应具有基本功能可以总结为以下几个模块,如图4.1所示:

图4.1 系统组织图

根据业务管理实际,个人网站应包含前台和后来。后台管理员主要实现了博客管理、用户管理、视频管理等功能。前台客户可以查看博客内容,可以注册、登录,进行留言等。

第5章 详细设计

详细设计阶段的任务就是把在总体设计阶段提出的比较抽象概括的解决问题的方法具体化,也就是"应该怎样具体地实现这个系统"。在本阶段将包括数据库的设计和每个模块的详细设计,确定实现模块功能所需要的算法和数据结构。

5.1 数据库设计

5.1.1 概念结构设计

个人网站中各实体的属性如下:

包含以下8个实体,用户实体,博客实体,博客评论实体,收藏实体,留言实体,相册实体,音乐实体,视频实体个人网站E-R图如图5.3所示:

图5.3 博客的相关实体联系图

5.1.2 逻辑结构设计

1.关系模型设计

目前,数据库领域常用的数据模型有四种,它们是:层次模型(Hierarchical Model)、网状模型(Network Model)、关系模型(Relational Model)、面向对象模型(Object Oriented Model)。在本个人网站中,我采用了关系模型的方式。

下面我们把上面的E-R图转换为关系模型。根据一般的转换原则,转换如下所示,其中主键用下横线标出。

1 用户( 用户编号,用户名,密码,姓名,权限,电话,地址 )

2 博客( 博客编号,标题,内容,发布时间,发布人 )

3 博客评论( 博客评论编号,博客,评论,用户,时间 )

4 收藏( 收藏编号,博客,用户,时间 )

5 留言( 留言编号,留言,用户,时间 )

6 相册( 相册编号,相册名称,图片,上传说明,上传时间 )

7 音乐( 音乐编号,名称,说明,文件 )

8 视频( 视频编号,视频名称,说明,文件,上传时间 ) 。

2.数据库表的结构实现

由各个关系模式和根据需求分析阶段数据字典的数据项描述,给出各数据表结构。系统总的表的结构如表5-1所示。

表5-1数据库表汇总

|----|----------|------|-----------------------|
| 序号 | 表名 | 表中文名 | 功能说明 |
| 1 | yonghu | 用户 | 用户表,用于保存系统用户的信息管理 |
| 2 | boke | 博客 | 博客表,用于保存系统博客的信息管理 |
| 3 | bkpl | 博客评论 | 博客评论表,用于保存系统博客评论的信息管理 |
| 4 | shouzang | 收藏 | 收藏表,用于保存系统收藏的信息管理 |
| 5 | liuyan | 留言 | 留言表,用于保存系统留言的信息管理 |
| 6 | xiangce | 相册 | 相册表,用于保存系统相册的信息管理 |
| 7 | yinle | 音乐 | 音乐表,用于保存系统音乐的信息管理 |
| 8 | shipin | 视频 | 视频表,用于保存系统视频的信息管理 |

数据库中的表如表5-2到5-10所示:

表5-2 用户 信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | yhid | INTEGER | 11 | 是 | 用户编号 |
| 2 | yhm | VARCHAR | 40 | 否 | 用户名 |
| 3 | mm | VARCHAR | 40 | 否 | 密码 |
| 4 | xm | VARCHAR | 40 | 否 | 姓名 |
| 5 | qx | VARCHAR | 40 | 否 | 权限 |
| 6 | dh | VARCHAR | 40 | 否 | 电话 |
| 7 | dz | VARCHAR | 40 | 否 | 地址 |

表5-3 博客 信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | bkid | INTEGER | 11 | 是 | 博客编号 |
| 2 | bt | VARCHAR | 40 | 否 | 标题 |
| 3 | nr | VARCHAR | 40 | 否 | 内容 |
| 4 | fbsj | VARCHAR | 40 | 否 | 发布时间 |
| 5 | fbr | VARCHAR | 40 | 否 | 发布人 |

表5-4 博客评论 信息表

|----|--------|---------|----|----|--------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | bkplid | INTEGER | 11 | 是 | 博客评论编号 |
| 2 | bk | VARCHAR | 40 | 否 | 博客 |
| 3 | pl | VARCHAR | 40 | 否 | 评论 |
| 4 | yh | VARCHAR | 40 | 否 | 用户 |
| 5 | sj | VARCHAR | 40 | 否 | 时间 |

表5-5 收藏 信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | szid | INTEGER | 11 | 是 | 收藏编号 |
| 2 | bk | VARCHAR | 40 | 否 | 博客 |
| 3 | yh | VARCHAR | 40 | 否 | 用户 |
| 4 | sj | VARCHAR | 40 | 否 | 时间 |

表5-6 留言 信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | lyid | INTEGER | 11 | 是 | 留言编号 |
| 2 | ly | VARCHAR | 40 | 否 | 留言 |
| 3 | yh | VARCHAR | 40 | 否 | 用户 |
| 4 | sj | VARCHAR | 40 | 否 | 时间 |

表5- 7 音乐 信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | ylid | INTEGER | 11 | 是 | 音乐编号 |
| 2 | mc | VARCHAR | 40 | 否 | 名称 |
| 3 | sm | VARCHAR | 40 | 否 | 说明 |
| 4 | wj | VARCHAR | 40 | 否 | 文件 |

表5- 8 视频 信息表

|----|------|---------|----|----|------|
| 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
| 1 | spid | INTEGER | 11 | 是 | 视频编号 |
| 2 | spmc | VARCHAR | 40 | 否 | 视频名称 |
| 3 | sm | VARCHAR | 40 | 否 | 说明 |
| 4 | wj | VARCHAR | 40 | 否 | 文件 |
| 5 | scsj | VARCHAR | 40 | 否 | 上传时间 |

5.2 界面设计

个人网站包括后台和前台两部分,接下来分前后台来分别展示界面。

5.2.1后台界面

管理员登陆界面,如图5.5所示:

图5.7 管理员登陆界面

后台主界面分为用户管理,博客管理管理等几个部分,如图5.6所示:

图5.8 后台主页面

评论管理,如图5.7所示:

图5.9 评论管理

5.2.2前台界面

前台主页面浏览博客信息,如图5.12所示:

图5.13 前台主页面

留言信息,如图5.14所示:

图5.14 留言信息

大家点赞、收藏、关注、评论啦 其他的定制服务 商务合作 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

相关推荐
s1hiyu13 小时前
实时控制系统验证
开发语言·c++·算法
大模型玩家七七13 小时前
向量数据库实战:从“看起来能用”到“真的能用”,中间隔着一堆坑
数据库·人工智能·python·深度学习·ai·oracle
OceanBase数据库官方博客13 小时前
基于分层协作多智能体的数据库参数调优——OceanBase 校企研究
数据库·oceanbase·分布式数据库
AC赳赳老秦13 小时前
科研数据叙事:DeepSeek将实验数据转化为故事化分析框架
开发语言·人工智能·数据分析·r语言·时序数据库·big data·deepseek
2301_7634724613 小时前
使用PyQt5创建现代化的桌面应用程序
jvm·数据库·python
爱学习的阿磊13 小时前
Web开发与API
jvm·数据库·python
楼田莉子13 小时前
C++现代特性学习:C++14
开发语言·c++·学习·visual studio
阳光九叶草LXGZXJ13 小时前
达梦数据库-学习-50-分区表指定分区清理空洞率(交换分区方式)
linux·运维·数据库·sql·学习
Data_Journal13 小时前
【无标题】
大数据·服务器·前端·数据库·人工智能
qq_1927798713 小时前
Python多线程与多进程:如何选择?(GIL全局解释器锁详解)
jvm·数据库·python