3 租车管理系统总体设计
本章主要讨论的内容包括租车管理系统的功能模块设计、数据库系统设计。
本租车管理系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1租车管理系统架构设计图
表现层(UI):又称UI层,主要完成本租车管理系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本租车管理系统时的舒适度。UI的界面设计也要适应不同版本的租车管理系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本租车管理系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本租车管理系统的数据是放在服务端的SQL Server数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本租车管理系统的数据存储和管理功能。
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本租车管理系统中的用例。那么接下来就要开始对本租车管理系统的架构、主要功能和数据库开始进行设计。租车管理系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2 租车管理系统功能模块图
后台管理者能够实现对前台注册的用户增删改查操作,用户模块结构图如下图:
图3-3普通用户模块结构图
租车管理系统是一个交流性质的公开平台,普通用户用户可以在平台上交流,增加用户之间的互动性。但是同时也为了更好的规范评论的内容,给予管理员删除不合适的言论的功能,所以需要专门设计一个评论管理模块,具体的结构图如下:
图3-4评论模块结构图
租车管理系统是中需要存储不少汽车信息,其模块功能结构,具体的结构图如下:
图3-5汽车信息模块结构图
3.3 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
下面是整个租车管理系统中主要的数据库表总E-R实体关系图。
图3-6 租车管理系统总E-R关系图
通过上一小节中租车管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表car_events (汽车活动)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | car_events_id | int | 10 | 0 | N | Y | 汽车活动ID | |
2 | activity_name | varchar | 64 | 0 | Y | N | 活动名称 | |
3 | activity_type | varchar | 64 | 0 | Y | N | 活动类型 | |
4 | activity_time | varchar | 64 | 0 | Y | N | 活动时间 | |
5 | event_location | varchar | 64 | 0 | Y | N | 活动地点 | |
6 | activity_description | text | 65535 | 0 | Y | N | 活动描述 | |
7 | activity_cover | varchar | 255 | 0 | Y | N | 活动封面 | |
8 | event_details | longtext | 2147483647 | 0 | Y | N | 活动详情 | |
9 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表car_information (汽车信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | car_information_id | int | 10 | 0 | N | Y | 汽车信息ID | |
2 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
3 | vehicle_model | varchar | 64 | 0 | Y | N | 汽车型号 | |
4 | license_plate | varchar | 64 | 0 | Y | N | 车牌号码 | |
5 | car_rental_price | int | 10 | 0 | Y | N | 0 | 租车价格 |
6 | lease_information | text | 65535 | 0 | Y | N | 租约信息 | |
7 | return_route | text | 65535 | 0 | Y | N | 还车途径 | |
8 | car_pictures | varchar | 255 | 0 | Y | N | 汽车图片 | |
9 | car_introduction | longtext | 2147483647 | 0 | Y | N | 汽车简介 | |
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 | 更新时间 |
表car_rental (汽车挂租)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | car_rental_id | int | 10 | 0 | N | Y | 汽车挂租ID | |
2 | rented_user | int | 10 | 0 | Y | N | 0 | 挂租用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_phone | varchar | 64 | 0 | Y | N | 用户电话 | |
5 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
6 | vehicle_model | varchar | 64 | 0 | Y | N | 汽车型号 | |
7 | license_plate | varchar | 64 | 0 | Y | N | 车牌号码 | |
8 | car_pictures | varchar | 255 | 0 | Y | N | 汽车图片 | |
9 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表car_rental_information (租车信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | car_rental_information_id | int | 10 | 0 | N | Y | 租车信息ID | |
2 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
3 | vehicle_model | varchar | 64 | 0 | Y | N | 汽车型号 | |
4 | license_plate | varchar | 64 | 0 | Y | N | 车牌号码 | |
5 | car_rental_price | int | 10 | 0 | Y | N | 0 | 租车价格 |
6 | lease_information | text | 65535 | 0 | Y | N | 租约信息 | |
7 | return_route | text | 65535 | 0 | Y | N | 还车途径 | |
8 | car_rental_users | int | 10 | 0 | Y | N | 0 | 租车用户 |
9 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
10 | user_phone | varchar | 64 | 0 | Y | N | 用户电话 | |
11 | car_rental_time | datetime | 19 | 0 | Y | N | 租车时间 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表collect (收藏)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表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: |
表customer_service_dialogue (客服对话)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | customer_service_dialogue_id | int | 10 | 0 | N | Y | 客服对话ID | |
2 | conversation_user | int | 10 | 0 | Y | N | 0 | 对话用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | consultation_time | datetime | 19 | 0 | Y | N | 咨询时间 | |
5 | user_information | text | 65535 | 0 | Y | N | 用户信息 | |
6 | customer_service_response | text | 65535 | 0 | Y | N | 客服回复 | |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表customer_service_users (客服用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | customer_service_users_id | int | 10 | 0 | N | Y | 客服用户ID | |
2 | customer_service_name | varchar | 64 | 0 | Y | N | 客服名称 | |
3 | customer_service_gender | varchar | 64 | 0 | Y | N | 客服性别 | |
4 | customer_service_age | varchar | 64 | 0 | Y | N | 客服年龄 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表fault_report (故障报告)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | fault_report_id | int | 10 | 0 | N | Y | 故障报告ID | |
2 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
3 | vehicle_model | varchar | 64 | 0 | Y | N | 汽车型号 | |
4 | license_plate | varchar | 64 | 0 | Y | N | 车牌号码 | |
5 | car_rental_users | int | 10 | 0 | Y | N | 0 | 租车用户 |
6 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
7 | user_phone | varchar | 64 | 0 | Y | N | 用户电话 | |
8 | reporting_time | datetime | 19 | 0 | Y | N | 报告时间 | |
9 | report_content | text | 65535 | 0 | Y | N | 报告内容 | |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | 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: |
表maintenance_records (维修记录)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | maintenance_records_id | int | 10 | 0 | N | Y | 维修记录ID | |
2 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
3 | vehicle_model | varchar | 64 | 0 | Y | N | 汽车型号 | |
4 | license_plate | varchar | 64 | 0 | Y | N | 车牌号码 | |
5 | car_rental_users | int | 10 | 0 | Y | N | 0 | 租车用户 |
6 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
7 | user_phone | varchar | 64 | 0 | Y | N | 用户电话 | |
8 | reporting_time | datetime | 19 | 0 | Y | N | 报告时间 | |
9 | report_content | text | 65535 | 0 | Y | N | 报告内容 | |
10 | maintenance_time | datetime | 19 | 0 | Y | N | 维修时间 | |
11 | maintenance_content | text | 65535 | 0 | Y | N | 维修内容 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表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 | 更新时间: |
表ordinary_users (普通用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | ordinary_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | 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已取消 |
表return_information (还车信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | return_information_id | int | 10 | 0 | N | Y | 还车信息ID | |
2 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
3 | vehicle_model | varchar | 64 | 0 | Y | N | 汽车型号 | |
4 | license_plate | varchar | 64 | 0 | Y | N | 车牌号码 | |
5 | car_rental_price | int | 10 | 0 | Y | N | 0 | 租车价格 |
6 | lease_information | text | 65535 | 0 | Y | N | 租约信息 | |
7 | return_route | text | 65535 | 0 | Y | N | 还车途径 | |
8 | car_rental_users | int | 10 | 0 | Y | N | 0 | 租车用户 |
9 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
10 | user_phone | varchar | 64 | 0 | Y | N | 用户电话 | |
11 | car_rental_time | datetime | 19 | 0 | Y | N | 租车时间 | |
12 | return_time | datetime | 19 | 0 | Y | N | 还车时间 | |
13 | car_rental_duration | int | 10 | 0 | Y | N | 0 | 租车时长 |
14 | car_rental_amount | varchar | 64 | 0 | Y | N | 租车金额 | |
15 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | 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 | 更新时间: |
表upload (文件上传)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
表user (用户账户:用于保存用户登录信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
表user_group (用户组:用于用户前端身份和鉴权)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
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 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
3.4本章小结
整个租车管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
东营做网站石家庄建站常德seo怀化网络推广西安网站制作公司软件系统定制开发分销系统开发公司苏州公司建站免费建站网站闵行网站建设视频直播平台开发网站设计 上海武汉做网站公司行业网站建设方案东莞做网页商城网站建设日照网站优化洛阳做网站安卓应用开发软件网站建设资源中山软件开发苏州建网站广东网站制作公司宜昌网站制作微信开发者工具营销网站定制都江堰网站建设郑州制作网站班级网站模板网站建设简介罗湖网站建设公司