本章主要讨论的内容包括少儿编程网站的功能模块设计、数据库系统设计。
本少儿编程网站从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1少儿编程网站架构设计图
表现层(UI):又称UI层,主要完成本少儿编程网站的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本少儿编程网站时的舒适度。UI的界面设计也要适应不同版本的少儿编程网站以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本少儿编程网站的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本少儿编程网站的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本少儿编程网站的数据存储和管理功能。
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本少儿编程网站中的用例。那么接下来就要开始对本少儿编程网站的架构、主要功能和数据库开始进行设计。少儿编程网站根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2 少儿编程网站功能模块图
后台管理者能够实现对前台注册的用户增删改查操作,用户模块结构图如下图:
图3-3普通用户模块结构图
少儿编程网站是一个交流性质的公开平台,普通用户用户可以在平台上交流,增加用户之间的互动性。但是同时也为了更好的规范留言的内容,给予管理员删除不合适的言论的功能,所以需要专门设计一个评论管理模块,具体的结构图如下:
图3-4评论模块结构图
少儿编程网站是中需要存储不少编程资源信息,其模块功能结构,具体的结构图如下:
图3-5编程资源模块结构图
少儿编程网站最重要的一个功能就是购买,其模块功能结构,具体的结构图如下:
图3-6课程模块结构图
3.3 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
下面是整个少儿编程网站中主要的数据库表总E-R实体关系图。
图3-6 少儿编程网站总E-R关系图
通过上一小节中少儿编程网站中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表comment (评论)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表course_classification (课程分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | course_classification_id | int | 10 | 0 | N | Y | 课程分类ID | |
2 | course_type | varchar | 64 | 0 | Y | N | 课程类型 | |
3 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表course_information (课程信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | course_information_id | int | 10 | 0 | N | Y | 课程信息ID | |
2 | course_no | varchar | 64 | 0 | Y | N | 课程编号 | |
3 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | course_type | varchar | 64 | 0 | Y | N | 课程类型 | |
6 | teacher | varchar | 64 | 0 | Y | N | 任课教师 | |
7 | class_time | varchar | 64 | 0 | Y | N | 上课时间 | |
8 | course_location | varchar | 64 | 0 | Y | N | 上课地点 | |
9 | price | int | 10 | 0 | Y | N | 0 | 价格 |
10 | number_of_courses | int | 10 | 0 | Y | N | 0 | 课程名额 |
11 | remaining_quota | int | 10 | 0 | Y | N | 0 | 剩余名额 |
12 | course_introduction | longtext | 2147483647 | 0 | Y | N | 课程介绍 | |
13 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
14 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
15 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
16 | limit_times | int | 10 | 0 | N | N | 0 | 限制次数 |
17 | limit_type | tinyint | 4 | 0 | N | N | 2 | 限制次数类型1-每天次,2-总计次 |
18 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
19 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表course_purchase (课程购买)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | course_purchase_id | int | 10 | 0 | N | Y | 课程购买ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单号 | |
3 | course_no | varchar | 64 | 0 | Y | N | 课程编号 | |
4 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
5 | course_type | varchar | 64 | 0 | Y | N | 课程类型 | |
6 | teacher | varchar | 64 | 0 | Y | N | 任课教师 | |
7 | price | varchar | 64 | 0 | Y | N | 价格 | |
8 | user | int | 10 | 0 | Y | N | 0 | 用户 |
9 | number_of_applicants | int | 10 | 0 | Y | N | 0 | 报名人数 |
10 | total_price | varchar | 64 | 0 | Y | N | 总价格 | |
11 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
12 | age | varchar | 64 | 0 | Y | N | 年龄 | |
13 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
14 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
15 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
16 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
17 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
18 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
19 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
20 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
21 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表notice (公告)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表praise (点赞)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表programming_resources (编程资源)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | programming_resources_id | int | 10 | 0 | N | Y | 编程资源ID | |
2 | resource_name | varchar | 64 | 0 | Y | N | 资源名称 | |
3 | cover | varchar | 255 | 0 | Y | N | 封面 | |
4 | relevant_attachments | varchar | 255 | 0 | Y | N | 相关附件 | |
5 | video | varchar | 255 | 0 | Y | N | 视频 | |
6 | publisher | varchar | 64 | 0 | Y | N | 发布人 | |
7 | release_date | date | 10 | 0 | Y | N | 发布日期 | |
8 | resource_introduction | longtext | 2147483647 | 0 | Y | N | 资源介绍 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表registered_users (注册用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registered_users_id | int | 10 | 0 | N | Y | 注册用户ID | |
2 | full_name | varchar | 64 | 0 | Y | N | 姓名 | |
3 | gender | varchar | 64 | 0 | Y | N | 性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表slides (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
3.4本章小结
整个少儿编程网站的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
策划公司取名字大全百度seo设置网络逻辑设计报告微信官网免费下载视频聊天软件开发公司排名网络营销公深圳全网推广推荐腾讯云如何注册域名转笔教学网站网页制作模板端午节沧州网络运营中心在哪里精品一卡2卡三卡4卡二百信息网无锡做app的公司有哪些上海公司代理注册公司武汉网站建设公司费用价格2021世界500强深圳宝安区哪里好玩新媒体运营岗位职责和任职要求安徽网站优化好不好深圳制作软件网站视频存储方案北京网站建设推荐安徽秒搜科技系统开发的生命周期分为几个阶段个人自我介绍网页扬州工程信息网站一级造价工程师注册管理系统晋江交流区吉林省最新疫情最新消息北京网页设计设计培训深圳设计网站培训河南多地启动恢复线下教学