博主介绍:✌ 专注于VUE,小程序,安卓,Java,python,物联网专业, 从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。
一、研究目的
本研究旨在构建一种基于SpringBoot框架与微信小程序技术的校园跑腿服务系统,以满足高校师生日常生活中的即时需求,提升校园内部物流效率与服务质量。通过深入分析校园跑腿业务场景,发现传统人工跑腿模式存在响应慢、信息不对称、费用透明度低等问题,亟需借助信息技术手段实现流程自动化与可视化管理。为此,本研究将聚焦于系统功能模块的需求挖掘与技术选型,提出基于SpringBoot的后端服务架构与微信小程序前端交互模式,并在此基础上设计统一的数据存储方案、任务调度机制与安全认证流程。系统将实现订单发布、跑腿员匹配、实时位置跟踪、费用结算以及评价反馈等核心功能,力求在保证业务可扩展性的同时提供高并发处理能力与稳定的用户体验。通过对校园跑腿服务的数字化改造,本研究期望验证SpringBoot与微信小程序技术在高校场景中的适配性,为类似校园服务平台提供可借鉴的技术实现路径,并为后续在更广阔教育场景中推广智能物流解决方案奠定理论与实践基础。
二、研究意义
本研究在信息技术与校园服务交叉领域开展,旨在通过构建基于SpringBoot与微信小程序的跑腿服务系统,探讨数字化工具如何提升高校内部物流效率与服务质量。通过对传统人工跑腿模式的痛点分析,本研究揭示了信息不对称、响应延迟、费用透明度不足等问题,并提出以技术手段实现订单撮合、实时跟踪与费用结算的解决方案。 在此基础上,系统设计将实现跑腿员与需求方的双向匹配、基于地理位置的最优路径规划以及多维度评价机制,从而构建一个高效、透明且可持续运营的服务生态。研究意义不仅体现在提升校园生活便利度与资源配置效率,还为高校信息化管理提供了可复制、可扩展的技术范式,促进了智慧校园建设与数字治理的深度融合。 此外,系统在安全认证、支付结算与数据隐私方面的严格设计,为类似场景下的移动服务平台提供了经验参考,有助于规范行业标准与监管合规。 最终,本研究通过实验验证与用户调研,期望展示基于SpringBoot与微信小程序技术的校园跑腿服务系统在实际运营中的可行性、经济效益与社会价值,为高校信息化发展提供理论支持与实践路径。
三、国内外研究现状
国内学术界对校园跑腿与校园物流服务的研究起步较早,主要集中在需求分析、系统架构设计与业务流程优化方面。近年来,随着移动互联网技术的快速发展,研究者将重点转向基于移动端应用的需求满足与服务体验提升,其中以微信小程序为代表的轻量级前端技术被广泛采用于校园跑腿平台的原型实现。国内相关研究普遍采用Java生态中的SpringBoot框架构建后端服务,利用其模块化、易扩展的特性实现订单管理、跑腿员调度、支付结算等核心功能,并通过RESTful API与前端进行交互。与此同时,研究者在数据层面探索了基于关系型数据库与NoSQL混合存储的方案,以兼顾事务一致性与大规模并发读写需求。对业务流程的优化研究则侧重于跑腿员匹配算法、路径规划与实时跟踪技术,尝试引入机器学习模型进行需求预测和资源调度,以提升系统整体效率与用户满意度。国内已有多所高校通过实验室项目或校内试点验证了上述技术方案的可行性,并在实际运营中取得了订单响应时间缩短、跑腿员利用率提升等正向效果。
国外学术界对校园跑腿服务的研究相对分散,主要聚焦于更广泛的“最后一公里”配送与移动商务场景。欧美学者在物流管理与供应链优化领域已形成成熟的理论体系,并将其延伸至校园环境,通过构建基于GIS的路径规划系统、利用多目标优化算法实现成本与时效双重最优。与此同时,亚洲部分高校也开展了针对校园内部配送的案例研究,采用Python Django、Node.js等技术栈实现后端服务,并结合React Native或Flutter等跨平台框架开发移动端应用。国外研究在用户体验设计方面更为细致,强调交互流程的简洁性与可访问性,并通过A/B测试与用户画像分析不断迭代产品功能。数据安全与隐私保护亦是国外研究的重要议题,学者们提出了基于区块链的身份认证方案以及差分隐私技术在订单数据中的应用,以满足日益严格的数据合规要求。
总体而言,国内外研究主要集中在三大方向:一是技术架构与平台实现,国内侧重SpringBoot与微信小程序的结合,国外则多采用多语言、多框架的混合技术;二是业务流程与算法优化,国内强调跑腿员匹配与路径规划的实时性,国外更注重成本效益与供应链协同;三是用户体验与数据治理,国内研究关注功能完整性与平台易用性,国外研究则更加重视交互设计、可访问性以及隐私保护。通过对比可见,国内在技术实现层面已取得一定进展,但在算法创新与跨平台协同方面仍有提升空间;国外在物流优化与数据治理方面积累了丰富经验,可为国内研究提供参考。未来,结合国内高校的实际需求与国外成熟经验,进一步深化技术融合、算法创新与用户体验设计,将有助于构建更高效、更安全、更具可持续性的校园跑腿服务系统。
四、预期达到目标及解决的关键问题
本研究的预期目标主要集中在构建一套完整、可持续运行的校园跑腿服务系统,以实现订单发布、跑腿员匹配、实时跟踪与费用结算等核心功能,并通过系统性能指标验证其在高并发环境下的稳定性与响应速度。具体而言,系统应支持每日订单量超过千单的情况下保持平均响应时间低于三秒,跑腿员利用率提升至八成以上,并通过用户满意度调查获得平均评分不低于四星半。除此之外,系统还需实现与校园信息平台的无缝对接,为学生与教职工提供一站式服务体验,并通过可视化管理后台为管理员提供订单统计、跑腿员绩效与财务结算等多维度数据分析。通过上述目标的实现,期望为高校信息化建设提供可复制、可扩展的技术方案,并为校园内部物流效率提升与数字治理创新贡献理论与实践价值。
在实现上述目标的过程中,研究将面临若干关键问题。首先是订单撮合与跑腿员调度算法的实时性与公平性,需要在保证最短配送时间的同时兼顾跑腿员工作负载均衡;其次是系统的可扩展性与高并发处理能力,需通过微服务拆分、异步消息队列与缓存技术实现水平扩容;再次是支付结算与数据安全问题,要求在满足校园财务监管要求的前提下,采用安全认证、加密传输与访问控制等措施保障用户隐私;最后是用户体验与多端兼容性,需要通过微信小程序的响应式设计与后端接口优化实现不同终端设备上的一致交互体验。针对上述关键问题,本研究将采用实验验证与案例分析相结合的方法,逐步迭代系统架构与算法模型,以确保最终产品在技术成熟度与业务可行性方面均达到预期要求。
五、研究内容
本研究围绕构建一套基于SpringBoot与微信小程序的校园跑腿服务系统展开,整体研究内容涵盖系统总体设计、关键技术实现、算法优化与性能评估等多个层面。首先,在系统总体设计层面,本研究将采用分层架构模式,将业务逻辑、数据访问与表现层严格分离,并通过微服务化拆分实现模块化部署,以便在校园内部网络环境下实现高可用与水平扩容。后端采用SpringBoot框架,利用其自动配置与依赖注入特性快速搭建RESTful API服务;前端则采用微信小程序技术,借助其原生能力实现轻量级交互与即时推送。系统将通过统一的鉴权中心实现用户身份验证与权限管理,并通过JWT令牌在前后端之间保持安全通信。
在数据层面,本研究将设计基于MySQL的关系型数据库用于存储订单、跑腿员、用户信息等核心业务数据,同时引入Redis缓存用于热点数据的快速访问与会话管理。为满足大规模并发写入需求,系统将采用分布式事务与消息队列(如Kafka)实现异步订单处理与跑腿员调度。数据库表设计遵循范式化原则,并通过索引优化查询性能;同时在数据安全层面,将对敏感字段进行加密存储,并通过访问控制列表限制数据访问范围。
业务逻辑层面将实现订单发布、跑腿员匹配、实时跟踪与费用结算等核心功能。订单发布模块将提供多种需求类型(如快递代收、文件传递、生活用品采购)并支持自定义配送时间;跑腿员匹配模块将基于地理位置与跑腿员当前状态采用启发式算法实现最优匹配,并通过负载均衡策略避免单点过载。实时跟踪模块将利用微信小程序的定位API与后端的WebSocket服务实现订单状态与跑腿员位置的双向实时同步;费用结算模块将集成校园支付接口,实现订单金额计算、优惠券抵扣与自动对账功能。
在算法优化层面,本研究将探讨基于机器学习的需求预测模型,以提前预判高峰期并动态调整跑腿员资源分配;同时针对路径规划问题,将引入Dijkstra或A*算法结合校园道路网络图实现最短路径计算,并考虑实时交通状况与跑腿员负载。为提升系统鲁棒性,研究还将设计故障恢复机制与灰度发布策略,确保关键业务在节点失效时能够无缝切换。
安全与隐私保护方面,本研究将采用HTTPS加密传输、OAuth 2.0授权框架以及基于角色的访问控制(RBAC)实现多层次安全防护;对用户个人信息与订单内容进行脱敏处理,并在数据存储与传输过程中使用AES或RSA加密技术。针对校园内部网络环境,研究将评估VPN与内网隔离方案,确保外部攻击无法直接接触核心服务。
最后,在性能评估与实验验证层面,本研究将通过构建测试环境模拟校园内高并发订单场景,利用JMeter或Locust进行压力测试,并通过监控系统(如Prometheus+Grafana)收集CPU、内存、响应时间等指标。实验结果将与预期目标进行对比,验证系统在订单量超过千单/日时平均响应时间低于三秒、跑腿员利用率提升至八成以上等指标的可达性。基于实验数据,本研究还将提出进一步优化建议,为后续系统迭代提供依据。
六、需求分析
用户需求方面,本研究聚焦于高校师生在日常生活与学习过程中对即时配送服务的迫切需求。首先,用户期望能够通过简洁直观的界面快速发布跑腿订单,支持多种需求类型如快递代收、文件传递、生活用品采购等,并可自定义配送时间与优先级,以满足不同场景下的时效性要求。其次,用户对服务响应速度具有高度敏感性,期望从下单到跑腿员确认的全过程在三秒以内完成,以避免因延迟导致的学习或工作耽误。再次,用户对费用透明度与支付安全性提出明确诉求,需在订单详情中清晰展示配送费、优惠券抵扣及最终结算金额,并支持校园支付接口实现一次性支付或分期付款,确保资金流转的安全与合规。除此之外,用户还关注服务质量与信誉度,希望能够查看跑腿员的历史评价与实时评分,以便在多名跑腿员中做出合理选择。最后,用户对平台的可持续性与可靠性有着基本保障需求,期望在校园网络环境下实现离线缓存、断网恢复以及多端同步功能,以保证即使在网络波动时也能正常使用服务。
功能需求方面,本研究将系统划分为前端小程序、后端服务与管理后台三大模块,并在每一模块中细化关键功能。前端小程序需实现订单发布界面,包括需求类型选择、配送时间设定、地址定位与自定义备注输入等;跑腿员列表展示需支持按距离、评分与空闲状态筛选,并提供即时确认按钮;实时跟踪功能要求通过WebSocket或长轮询技术实现订单状态与跑腿员位置的双向同步,用户可在地图上直观查看配送进度。后端服务层需提供RESTful API接口,涵盖订单创建、跑腿员匹配、路径规划、支付结算与评价收集等业务流程;匹配算法需考虑跑腿员当前位置、负载状态与配送时效,采用启发式或基于机器学习的预测模型实现最优分配;路径规划模块需集成校园道路网络图,利用Dijkstra或A*算法计算最短路径,并在实时路况变化时动态调整。支付结算功能需与校园支付平台对接,支持订单金额计算、优惠券抵扣、积分使用及自动对账;同时系统需实现订单状态变更的事务一致性保障与异常恢复机制。管理后台则需提供订单统计报表、跑腿员绩效分析、财务结算明细与用户评价管理等功能,支持管理员进行权限分级、数据导出与系统监控。所有功能均需遵循安全设计原则,采用HTTPS加密传输、JWT鉴权与RBAC权限控制,并对敏感数据进行脱敏与加密存储,以满足校园信息安全与隐私保护的合规要求。
七、可行性分析
经济可行性方面,本研究所需的软硬件投入主要集中在后端服务器租赁、数据库存储、微信小程序开发与维护以及支付接口对接等环节。根据高校信息化基础设施现状,服务器可采用校园云平台或租用云服务提供商的弹性计算实例,初始配置成本约为每月数千元人民币;数据库与缓存服务的费用相对较低,且可通过分布式部署实现负载均衡。前端小程序开发费用主要包括UI/UX设计、功能实现与测试,预计一次性投入约为数万元,并在后续运营中保持低维护成本。支付接口对接需要与校园财务系统进行对接,涉及接口开发与安全审核,费用可通过与学校财务部门协商共享或以服务费形式收取。收入模式方面,可采用订单佣金或跑腿员服务费的方式实现盈利,假设每单平均佣金为几元人民币,在校园日均订单量达到千单以上时,月度收入可覆盖运营成本并实现盈亏平衡。综合来看,系统的初始投入与运营成本相对可控,且在高校内部推广后可通过规模化效应实现经济收益,具备良好的经济可行性。
社会可行性方面,该系统直接服务于高校师生的日常生活与学习需求,能够显著提升校园内部物流效率与服务满意度。用户对即时配送、费用透明以及评价机制的需求已在国内多所高校得到验证,系统通过微信小程序实现低门槛接入,易于被广泛接受。与此同时,系统的实施可促进校园就业与创业机会,为跑腿员提供灵活就业平台,并通过绩效考核与评价体系激励服务质量。社会成本主要体现在对个人隐私与数据安全的关注,系统需严格遵守相关法规,采用加密传输与访问控制等技术保障用户信息安全,从而获得师生的信任。综上所述,该系统在提升校园生活质量、促进就业与经济活动方面具有积极社会效益,社会可行性较高。
技术可行性方面,本研究所选用的SpringBoot框架与微信小程序技术均为成熟、广泛使用的技术栈,能够在高校现有信息化环境中顺利部署。后端服务采用微服务架构,可通过Docker容器化实现快速扩容,满足高并发订单处理需求;数据库层面结合关系型数据库与Redis缓存,兼顾事务一致性与高速读写;支付接口对接可通过RESTful API实现与校园财务系统的无缝集成。前端小程序利用微信生态的原生能力,能够在校园网络环境下保持良好的性能与离线缓存功能。安全层面,系统将采用HTTPS加密传输、JWT鉴权与RBAC权限控制,并对敏感数据进行加密存储,满足高校信息安全与合规要求。综合评估后,该系统在技术实现、可扩展性与安全保障方面均具备充分的技术可行性。
八、功能分析
系统功能模块划分为前端小程序层、后端服务层与管理后台层三大部分,整体结构遵循分层设计原则,以实现业务逻辑的清晰划分与高内聚低耦合。前端小程序层主要包括用户界面模块、跑腿员界面模块与实时跟踪模块。用户界面模块负责学生与教职工的账号注册、登录、个人信息维护以及订单发布功能,订单发布功能涵盖需求类型选择、配送时间设定、地址定位与备注输入等;跑腿员界面模块提供跑腿员身份认证、个人信息管理、可接单状态切换以及订单确认与完成操作;实时跟踪模块通过微信小程序的地图与WebSocket技术实现订单状态与跑腿员位置的双向同步,用户可在地图上直观查看配送进度。后端服务层则聚焦于核心业务逻辑实现,主要功能模块包括订单管理模块、跑腿员调度模块、路径规划模块、支付结算模块与评价收集模块。订单管理模块负责订单的创建、查询、状态更新与历史记录存储;跑腿员调度模块基于跑腿员当前位置与负载状态采用启发式匹配算法实现最优分配,并通过消息队列实现异步调度;路径规划模块利用校园道路网络图与Dijkstra或A*算法计算最短路径,并在实时路况变化时动态调整;支付结算模块集成校园支付接口,完成订单金额计算、优惠券抵扣、积分使用与自动对账;评价收集模块记录用户对跑腿员的评分与文字评价,为后续绩效评估提供依据。管理后台层为学校管理员提供综合管理功能,主要包括订单统计报表模块、跑腿员绩效分析模块、财务结算明细模块、用户与跑腿员信息管理模块以及系统监控与日志分析模块。订单统计报表模块通过可视化图表展示日均订单量、平均配送时长与收入情况;跑腿员绩效分析模块根据完成订单数、平均评分与准时率等指标生成绩效报告;财务结算明细模块提供对账凭证下载与资金流水查询功能;用户与跑腿员信息管理模块支持权限分级、账号禁用与数据导出;系统监控与日志分析模块实时监测服务健康状态、异常日志与性能指标。为保障系统安全,所有模块均通过HTTPS加密传输、JWT鉴权与RBAC权限控制实现多层次安全防护,并对敏感数据采用AES或RSA加密存储。上述功能模块协同工作,形成一套完整、可扩展且安全可靠的校园跑腿服务系统。
九、数据库设计
用户表
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 用户编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自增主键
username | 用户名,唯一标识符,区分学生与教职工身份等信息的核心字段,便于登录与权限控制使用。 | 50 | VARCHAR(50) NOT NULL UNIQUE | |
password_hash | 密码哈希值,用于安全存储用户登录凭证。 | 64 | CHAR(64) NOT NULL | |
phone | 手机号码,便于接收短信或微信通知。 | 15 | VARCHAR(15) NOT NULL | |
email | 邮箱地址,用于注册验证与密码重置。 | 100 | VARCHAR(100) NULL | |
role | 用户角色,取值范围为 student、teacher、admin,决定后端权限与前端功能展示。 | 10 | VARCHAR(10) NOT NULL DEFAULT 'student' | |
created_at | 账户创建时间戳。 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |
跑腿员表
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 跑腿员编号,唯一标识符。 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自增主键
user_id | 与用户表的关联外键,指向跑腿员对应的账户信息。 | 10 | INT UNSIGNED NOT NULL | FK → users.id | 外键约束,级联删除
status | 当前状态,取值范围为 online、offline、busy,决定能否接单。 | 10 | VARCHAR(10) NOT NULL DEFAULT 'offline' | |
current_location_lat | 当前纬度坐标,用于实时位置跟踪。 | 20 | DECIMAL(10,7) NULL | |
current_location_lng | 当前经度坐标,用于实时位置跟踪。 | 20 | DECIMAL(10,7) NULL | |
rating_avg | 平均评分,取值0~5,便于用户评估跑腿员质量。 | 4 | DECIMAL(3,2) NULL DEFAULT 0.00 | |
rating_count | 已获得评分次数,用于计算平均评分。 | 10 | INT UNSIGNED NULL DEFAULT 0 | |
created_at | 跑腿员账户创建时间戳。 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |
订单表
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 订单编号,唯一标识符。 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自增主键
user_id | 下单用户外键,指向用户表。 | 10 | INT UNSIGNED NOT NULL | FK → users.id | 外键约束,级联删除
runner_id | 已分配跑腿员外键,订单未分配时为 NULL。 | 10 | INT UNSIGNED NULL | FK → runners.id | 外键约束,级联删除
type | 需求类型,如 pickup、delivery、purchase 等。 | 20 | VARCHAR(20) NOT NULL | |
pickup_address | 取件地址,文本描述。 | 200 | VARCHAR(200) NOT NULL | |
delivery_address | 投递地址,文本描述。 | 200 | VARCHAR(200) NOT NULL | |
scheduled_time | 预定配送时间,支持即时或预约。 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | |
status | 当前状态,取值范围为 created、pending、assigned、in_progress、completed、cancelled。 | 20 | VARCHAR(20) NOT NULL DEFAULT 'created' | |
created_at | 订单创建时间戳。 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |
支付表
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 支付编号,唯一标识符。 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自增主键
order_id | 对应订单外键。 | 10 | INT UNSIGNED NOT NULL | FK → orders.id | 外键约束,级联删除
amount | 原始金额,单位为元。 | 10 | DECIMAL(10,2) NOT NULL DEFAULT 0.00 | |
discount_amount | 折扣金额,优惠券或积分抵扣后产生的金额。 | 10 | DECIMAL(10,2) NOT NULL DEFAULT 0.00 | |
final_amount | 最终支付金额,等于 amount - discount_amount。 | 10 | DECIMAL(10,2) NOT NULL DEFAULT 0.00 | |
payment_time | 支付完成时间戳。 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | |
评价表
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 评价编号,唯一标识符。 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自增主键
order_id | 对应订单外键。 | 10 | INT UNSIGNED NOT NULL | FK → orders.id | 外键约束,级联删除
user_id | 评价人外键,指向用户表。 | 10 | INT UNSIGNED NOT NULL | FK → users.id | 外键约束,级联删除
runner_id | 被评价跑腿员外键。 | 10 | INT UNSIGNED NOT NULL | FK → runners.id | 外键约束,级联删除
rating | 评分值,取值范围0~5。 | 4 | DECIMAL(3,2) NOT NULL DEFAULT 0.00 | |
comment | 评论内容,可为空。 | 500 | VARCHAR(500) NULL | |
created_at | 评价时间戳。 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | |
角色权限表(可选,用于细化权限控制)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 权限编号,唯一标识符。 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自增主键
role_name | 角色名称,如 student、teacher、admin。 | 20 | VARCHAR(20) NOT NULL UNIQUE | |
description | 角色描述,说明权限范围。 | 200 | VARCHAR(200) NULL | |
以上表结构均遵循第一范式与第二范式,主键唯一且非空,外键约束保证数据完整性。字段类型与长度根据实际业务需求进行合理设置,确保在校园网络环境下能够高效存取与查询。
十、建表语句
CREATE DATABASE IF NOT EXISTS campus_run_service CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE campus_run_service;
-- 用户表
CREATE TABLE users (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password_hash CHAR(64) NOT NULL,
phone VARCHAR(15) NOT NULL,
email VARCHAR(100),
role ENUM('student','teacher','admin') NOT NULL DEFAULT 'student',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY idx_users_phone (phone)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 跑腿员表
CREATE TABLE runners (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
status ENUM('online','offline','busy') NOT NULL DEFAULT 'offline',
current_location_lat DECIMAL(10,7),
current_location_lng DECIMAL(10,7),
rating_avg DECIMAL(3,2) NOT NULL DEFAULT 0.00,
rating_count INT UNSIGNED NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
CONSTRAINT fk_runners_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 订单表
CREATE TABLE orders (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
runner_id INT UNSIGNED,
type ENUM('pickup','delivery','purchase') NOT NULL,
pickup_address VARCHAR(200) NOT NULL,
delivery_address VARCHAR(200) NOT NULL,
scheduled_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
status ENUM('created','pending','assigned','in_progress','completed','cancelled') NOT NULL DEFAULT 'created',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
CONSTRAINT fk_orders_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
CONSTRAINT fk_orders_runner_id FOREIGN KEY (runner_id) REFERENCES runners(id) ON DELETE SET NULL,
INDEX idx_orders_user_id (user_id),
INDEX idx_orders_runner_id (runner_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 支付表
CREATE TABLE payments (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
order_id INT UNSIGNED NOT NULL,
amount DECIMAL(10,2) NOT NULL DEFAULT 0.00,
discount_amount DECIMAL(10,2) NOT NULL DEFAULT 0.00,
final_amount DECIMAL(10,2) NOT NULL DEFAULT 0.00,
payment_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
CONSTRAINT fk_payments_order_id FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE,
INDEX idx_payments_order_id (order_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 评价表
CREATE TABLE reviews (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
order_id INT UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
runner_id INT UNSIGNED NOT NULL,
rating DECIMAL(3,2) NOT NULL DEFAULT 0.00,
comment VARCHAR(500),
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
CONSTRAINT fk_reviews_order_id FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE,
CONSTRAINT fk_reviews_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
CONSTRAINT fk_reviews_runner_id FOREIGN KEY (runner_id) REFERENCES runners(id) ON DELETE CASCADE,
INDEX idx_reviews_order_id (order_id),
INDEX idx_reviews_user_id (user_id),
INDEX idx_reviews_runner_id (runner_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 可选:角色表(若需要细化权限)
CREATE TABLE roles (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
role_name ENUM('student','teacher','admin') NOT NULL UNIQUE,
description VARCHAR(200),
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方👇🏻获取联系方式👇🏻