基于SQL Server的打车系统数据库分析与设计

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 针对现有打车软件所存在的不足,以SQL Server数据库技术为基础,分析并实现了基于C/S结构的打车系统,旨在指向性地提前对运营车辆进行调度,解决用户打车难的问题,提升乘客的出行体验,同时能够缓解早晚高峰交通拥塞问题。本文从需求分析、数据库设计、数据库实现、数据、功能测试、安全性等方面出发,详细介绍了系统的设计过程。

1.项目介绍
众所周知,用户使用打车软件的出行体验越好,其今后持续使用打车软件的意愿就会越强烈,但在实际生活中,由于在不同的区域、不同的时段,有车辆需求的乘客数量不同,因此有可能出现处于空载状态的车辆过多以及乘客所在区域车辆供不应求的情况,就会对用户出行的服务体验感造成一定的负面影响以及会使用户使用打车软件的意愿有所降低。
因此,为了解决上述等情况,此打车系统能够准确统计出成都各个区域在不同时间段内的出行量,以便预测出在未来的某一时间段内哪些区域的出行需求量较大,并可以根据人们在打车软件中的用车请求指向性地提前对运营车辆提供一些引导,对车辆进行调度,以求最大程度上缩短乘客的等车时长,解决早晚高峰时期打车困难的问题,进而在更大程度上满足用户的用车需求,同时能够缓解交通压力,提升乘客的整体出行体验,从而加强用户的绩效期望。
2.需求分析
实现一个打车出行系统,其系统设计要求包括乘客信息管理、司机信息管理、打车公司信息管理、车辆信息管理、订单信息管理五部分。面向的用户分为乘客、司机、打车公司、管理员,因此针对不同的用户群体需要满足其特定的功能需求:
(1).乘客。乘客能够注册登录并对个人信息进行更改,发起订单匹配车辆开始行程,并且可以查询自己的订单信息,包含车辆信息、乘车人数、行程时间及地点等具体信息。
(2).司机。司机能够注册入职打车公司并对个人信息进行更改,接单完成行程,并且可以查询自己的订单信息,包含乘客信息、车辆信息、乘车人数、行程时间及地点等具体信息。
(3).打车公司。打车公司能够注册入驻并对公司信息进行更改,可查询本公司的司机详细信息及订单信息,统计司机人数和订单总数,了解公司的业绩情况。
(4).管理员。系统管理员具有对打车出行系统进行管理和操作的最高权限,能够查看后台的程序和数据,并能对不同用户设置和调整权限,保证数据的完整性和安全性。
3.数据库设计
3.1 系统概念模型(E-R图)设计
数据库设计的优劣不但会影响应用系统的运行效率,同时还会影响程序实现的效果。因此,设计合理的数据库模型不仅可以提高数据存储的效率,保证数据的一致性和完整性,也有利于程序功能的实现。
该打车出行系统主要面向乘客、司机、打车公司,因此包括乘客实体、司机实体、打车公司实体、车辆实体以及订单实体。
此打车出行系统的E-R图如下:

其各个实体间的关系图如下:

3.2 逻辑结构设计
E-R模型向关系模型的转换如下:
打车公司(公司编号,公司名称)
车辆(车牌号,车辆服务类型,车辆颜色,车辆型号,里程单价,时长单价)
司机(编号,姓名,性别,联系电话,车牌号,公司编号,入职时间)
乘客(编号,姓名,性别,联系电话)
订单(订单号,乘客编号,车牌号,乘车人数,起始地,目的地,开始时间,结束时间)
4.数据库实现
4.1 表
表是数据库中最重要的对象,表的设计和创建是数据库的前提和基础,对整个系统架构的设计尤为重要。现基于分析及需要,本打车出行系统共建立了乘客信息表、打车公司信息表、司机信息表、车辆信息表、订单信息表五张表。下面以乘客信息表、司机信息表和订单信息表为例来具体说明表的设计和创建过程。
乘客信息表应包含下列信息:乘客编号、姓名、性别、联系电话。通过create table passengers语句建表,设置乘客编号的数据类型为int,作为唯一主键,唯一且非空;设置姓名的数据类型为varchar,非空约束;设置性别的数据类型为char,默认值约束、检查约束;设置联系电话的数据类型为bigint,非空约束、唯一约束。
司机信息表应包含下列信息:司机编号、姓名、性别、联系电话、车牌号、公司编号、入职时间。通过create table drivers语句建表,设置司机编号的数据类型为int,作为唯一主键,唯一且非空;设置姓名的数据类型为varchar,非空约束;设置性别的数据类型为char,默认值约束、检查约束;设置联系电话的数据类型为bigint,非空约束、唯一约束;设置入职时间的数据类型为date,是司机与打车公司之间的隶属联系的属性;车牌号和公司编号均为外键,车牌号引用车辆表中的主键number,公司编号引用打车公司表中的主键id。
订单信息表应包含下列信息:订单号、乘客编号、车牌号、乘车人数、起始地、目的地、开始时间、结束时间。其中订单号作为唯一主键,乘客编号和车牌号均为外键。
本文从乘客、司机、交通情况等实际需求出发,分析并设计了基于SQL Server数据库的打车出行系统,此打车系统会根据人们在打车软件中的用车请求对车辆进行调度,进而在更大程度上满足用户的用车需求,力求最大程度上提升乘客的出行体验,加强用户的绩效期望。
在当前以服务型经济为主导的社会经济体制下,对于打车出行系统来说,需要不断完善和优化软件功能,力求为用户提供更高质量的服务,最大程度上提升用户的出行体验,从而加强用户的绩效期望和使用意愿。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
19天前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
95 3
|
1天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
22 3
|
1天前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
10 2
|
5天前
|
存储 数据挖掘 数据库
数据库数据恢复—SQLserver数据库ndf文件大小变为0KB的数据恢复案例
一个运行在存储上的SQLServer数据库,有1000多个文件,大小几十TB。数据库每10天生成一个NDF文件,每个NDF几百GB大小。数据库包含两个LDF文件。 存储损坏,数据库不可用。管理员试图恢复数据库,发现有数个ndf文件大小变为0KB。 虽然NDF文件大小变为0KB,但是NDF文件在磁盘上还可能存在。可以尝试通过扫描&拼接数据库碎片来恢复NDF文件,然后修复数据库。
|
6天前
|
SQL JSON Java
没有数据库也能用 SQL
SPL(Structured Process Language)是一款开源软件,允许用户直接对CSV、XLS等文件进行SQL查询,无需将数据导入数据库。它提供了标准的JDBC驱动,支持复杂的SQL操作,如JOIN、子查询和WITH语句,还能处理非标准格式的文件和JSON数据。SPL不仅简化了数据查询,还提供了强大的计算能力和友好的IDE,适用于多种数据源的混合计算。
|
14天前
|
SQL 存储 关系型数据库
数据储存数据库管理系统(DBMS)
【10月更文挑战第11天】
47 3
|
15天前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
16 2
|
16天前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
35 2
|
17天前
|
存储 NoSQL 关系型数据库
数据库管理系统
【10月更文挑战第8天】
45 1
|
8天前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)