)
博主介绍✌ 专注于VUE,小程序安卓Java,python,物联网专业有18年开发经验长年从事毕业指导项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题我会尽力帮助你。一、研究目的随着数字经济的迅猛发展基于积分兑换的电商模式已成为提升用户粘性与品牌忠诚度的重要手段然而在现有系统中积分管理与商品兑换流程往往缺乏统一、可扩展的技术架构导致业务逻辑复杂、维护成本高昂。在传统的积分商城实现中多数采用单体应用或分层架构缺少对微服务化、容错性以及弹性伸缩的充分支持使得在高并发场景下易出现性能瓶颈、数据一致性失衡进一步影响用户体验与运营效率。本研究旨在基于SpringBoot框架构建一套模块化、可插拔的积分兑换商城系统核心目标包括通过统一的积分管理服务实现积分累积、抵扣与回收的完整生命周期采用分布式事务与事件驱动机制保障跨服务数据一致性利用容器化与自动化部署实现业务弹性伸缩并在安全层面引入细粒度权限控制与审计日志以满足合规要求。预期通过该系统的实现可显著降低积分兑换业务的技术门槛与运维成本提升系统对高并发请求的处理能力并为企业提供可持续扩展的积分营销平台最终推动用户参与度与商业价值双重增长。为实现上述目标研究将采用需求驱动设计与敏捷迭代相结合的方法首先通过业务访谈与现有系统评估明确关键功能与痛点随后利用领域驱动设计原则拆分业务模型形成服务边界接着在SpringBoot生态下集成Spring Cloud、Spring Data JPA、Redis缓存、Kafka消息队列等技术栈构建高可用、高性能的微服务体系最后通过持续集成/持续交付流水线与灰度发布机制确保系统在上线过程中的稳定性与可监控性。系统完成后将通过负载测试、事务一致性验证、用户体验评估等多维度指标进行全面评估具体包括平均响应时间不超过200毫秒、事务成功率≥99.9%、用户满意度调查得分≥4.5/5以及积分兑换成功率≥99%。本研究不仅为企业级积分商城提供了可复制、可扩展的技术实现范式也为微服务架构下的事务一致性与高并发处理提供了实证案例具有较高的理论价值与实践意义。二、研究意义本研究所提出的基于SpringBoot的积分兑换商城系统在技术层面上填补了当前电商积分管理与商品兑换业务中存在的架构碎片化与性能瓶颈问题进一步推动了微服务化、容错性以及弹性伸缩等关键技术在实际业务场景中的落地与验证。通过统一的积分管理服务实现积分累积、抵扣与回收的完整生命周期系统能够在高并发环境下保持低延迟与高可用性为企业提供可持续扩展的积分营销平台。与此同时采用分布式事务与事件驱动机制保障跨服务数据一致性避免了传统单体应用中常见的数据不一致与业务冲突现象从而提升了业务可靠性与用户体验。安全层面引入细粒度权限控制与审计日志不仅满足了合规要求也为后续监管审计提供了完整可追溯的证据链。学术上该研究在领域驱动设计、微服务架构以及分布式事务处理等方面提供了可复制的实现范式为相关研究者提供了实证案例与技术路线。经济层面系统能够帮助企业降低积分兑换业务的技术维护成本与运营风险提升用户粘性与品牌忠诚度从而在激烈的市场竞争中获得更高的商业价值。社会层面积分兑换商城通过鼓励正向消费行为促进了绿色消费与共享经济的发展为实现可持续发展目标贡献了积极力量。综上所述本研究在技术创新、经济效益与社会价值三方面均具有重要意义为电商行业乃至更广泛的互联网业务提供了可借鉴的技术方案与理论支持。三、国内外研究现状在信息技术与电子商务迅速融合的背景下积分兑换商城作为一种重要的用户激励机制已成为学术界与工业界关注的热点。国内外研究主要集中在系统架构设计、业务流程优化、数据一致性保障以及用户体验提升等方面。国外学者在早期主要关注积分系统的商业模式与经济效益通过实证研究揭示积分激励对消费者购买行为的影响并提出基于行为科学的积分分配模型。随后随着云计算与微服务技术的发展研究焦点转向了系统可扩展性与弹性。多篇论文探讨了基于容器化平台的积分服务编排、灰度发布以及自动化运维策略并通过大规模实验验证了其在高并发场景下的性能优势。分布式事务与事件驱动架构亦成为研究热点学者们提出了基于Saga模式、消息队列与补偿机制的解决方案以实现跨服务的数据一致性。国内研究起步相对较晚但发展迅猛。早期工作多聚焦于积分商城的业务流程重构与系统集成利用传统单体框架完成积分管理与商品兑换功能。随着SpringBoot、Spring Cloud等开源技术的普及国内研究者开始探索基于微服务的积分商城架构并在此基础上提出了统一身份认证、细粒度权限控制以及日志审计等安全机制。近年来国内学者进一步关注分布式事务与缓存一致性问题提出了基于Redis事务、分布式锁与消息补偿的混合方案并通过实验验证了其在高并发下的可靠性。研究方向方面国内外均围绕三大核心展开一是系统架构与技术选型。国外学者倾向于采用容器化与服务网格技术实现服务间的自动发现与流量控制国内研究则更注重SpringBoot生态下的模块化拆分与统一治理强调对业务场景的快速响应。二是数据一致性与事务管理。国外多采用Saga模式、事件溯源以及补偿事务国内研究者则在此基础上引入分布式锁、缓存失效策略与消息重试机制以提升系统的容错性。三是用户体验与商业价值。国外学者通过行为数据分析与A/B测试优化积分激励模型国内研究则侧重于积分兑换流程的简化、移动端交互设计以及多渠道营销集成以提升用户参与度。在成果方面国外已形成一系列成熟的积分商城框架与开源项目涵盖从身份认证、权限管理到分布式事务的完整解决方案并在大型电商平台中得到验证。国内则通过多篇会议论文与技术报告总结了基于SpringBoot的积分商城实现经验提出了统一服务治理、缓存一致性与安全审计的最佳实践并在实际项目中展示了系统性能提升与运维成本降低的显著效果。综上所述国内外在积分兑换商城研究上已取得丰富成果但仍存在技术细化、跨平台协同以及大规模数据分析等挑战。未来研究可进一步聚焦于多租户架构、人工智能驱动的积分推荐与动态定价模型以及区块链技术在积分安全与可追溯性方面的应用以满足日益复杂的商业需求和监管要求。四、预期达到目标及解决的关键问题预期目标在于构建一套基于SpringBoot的积分兑换商城系统该系统能够实现积分管理、商品兑换与订单处理的完整闭环并在高并发环境下保持低延迟与高可用性通过微服务化架构与统一治理平台实现业务模块的可插拔与弹性伸缩采用分布式事务与事件驱动机制保障跨服务数据一致性确保积分抵扣、商品库存及订单状态在任何情况下保持一致在安全层面引入细粒度权限控制、OAuth2认证以及审计日志体系满足合规与监管要求通过容器化部署与持续集成/持续交付流水线实现快速迭代与灰度发布降低运维成本并提升系统可靠性。关键问题主要包括一是分布式事务一致性保障如何在微服务拆分后仍保持积分抵扣与库存扣减的原子性二是高并发下的性能瓶颈如何通过缓存、异步处理与限流策略降低数据库压力三是缓存一致性与失效策略防止缓存击穿与雪崩导致的数据不一致四是服务治理与故障恢复如何实现服务发现、负载均衡以及熔断器的合理配置五是数据迁移与版本兼容如何在系统迭代中保持旧版积分数据与新业务逻辑的无缝衔接。解决上述问题将为系统提供稳健的技术基础并为后续功能扩展与业务创新奠定可靠平台。五、研究内容本研究首先开展需求分析与业务建模工作系统化梳理积分累积、抵扣、回收与商品兑换等核心业务流程并基于领域驱动设计原则构建统一的积分域模型随后在此基础上进行微服务拆分确定积分服务、商品服务、订单服务及用户服务等关键模块并通过接口契约实现跨模块协作。在技术实现层面本研究采用SpringBoot框架作为基础结合Spring Cloud生态实现服务治理与配置管理为解决分布式事务一致性问题系统引入Saga模式与事件驱动机制并通过Kafka消息队列实现异步补偿缓存层则采用Redis进行热点数据存储并设计失效策略与缓存预热机制以避免缓存击穿与雪崩。安全与合规方面系统集成OAuth2授权框架实现统一身份认证并通过细粒度权限控制对积分操作、商品管理及订单查询进行访问限制同时引入审计日志模块对所有关键业务操作进行记录与追踪满足监管合规要求。部署与运维环节本研究利用Docker容器化技术将各微服务打包并通过Kubernetes实现弹性伸缩与自愈持续集成/持续交付流水线采用Jenkins或GitLab CI完成自动化构建、单元测试、集成测试及灰度发布确保系统在迭代过程中的稳定性与可追溯性。最后本研究制定全面的评估方案包括功能完整性验证、单元与集成测试覆盖率统计、负载与性能基准测试以及安全渗透测试通过对比实验验证系统在高并发场景下的响应时间、事务成功率与资源利用率等关键指标最终形成可量化的性能评估报告为后续系统优化与业务扩展提供数据支持。六、需求分析用户需求方面系统的目标用户主要包括注册会员、普通消费者以及后台管理人员。注册会员在使用过程中期望能够轻松查看积分余额、了解积分获取规则、快速参与积分兑换活动并通过简洁直观的界面完成商品选择与兑换流程同时会员还需能够随时查询兑换历史、订单状态以及个人消费统计以便对自身积分使用进行合理规划。普通消费者在未注册或不使用积分时亦可浏览商品目录、查看商品详情与评价并在需要时通过积分抵扣完成购买期望系统能够提供友好的兑换提示与实时库存信息。后台管理人员则需要具备对用户积分账务的精准核算、商品库存的动态管理、订单状态的跟踪以及系统整体运营数据的分析与报表生成等功能以支持业务决策与运营优化。所有用户在使用过程中均期望系统响应迅速、操作流程简洁、信息安全可靠并能够在移动端与PC端无缝切换满足随时随地的使用需求。功能需求方面系统需实现用户管理模块包括注册登录、身份认证、角色授权以及个人资料维护等功能积分管理模块负责积分累积规则的配置、实时积分计算、抵扣逻辑校验与积分回收处理并通过事件驱动方式与订单服务同步更新商品服务模块提供商品信息维护、分类管理、库存查询与预警机制支持多维度检索与筛选订单服务模块负责兑换订单的创建、支付确认积分抵扣、物流跟踪以及退换货流程并在整个生命周期中记录状态变更支付集成模块需兼容积分抵扣与现金支付两种方式确保交易的完整性与安全性安全与审计模块实现OAuth2授权、细粒度权限控制以及操作日志记录满足合规要求缓存与消息队列模块通过Redis缓存热点数据、Kafka消息队列实现异步补偿与事件传播提升系统性能与可扩展性运维管理模块提供服务治理、配置中心、监控告警与灰度发布功能以支持持续集成与持续交付。上述功能需通过微服务架构实现模块化解耦支持水平扩容与弹性伸缩并在高并发场景下保持低延迟与高可用。七、可行性分析经济可行性方面本研究所提出的基于SpringBoot的积分兑换商城系统能够显著降低企业在积分管理与商品兑换业务上的技术投入与运维成本。首先采用开源框架与微服务架构实现模块化拆分可在已有技术栈基础上快速部署避免了从零开始开发所需的高昂人力成本其次系统通过容器化与自动化流水线实现持续集成与持续交付缩短了功能迭代周期使企业能够更快响应市场需求并抢占先机再次统一的积分管理服务将积分累积、抵扣与回收的完整生命周期纳入单一模块减少了跨系统调用与数据同步的复杂度从而降低了系统集成与维护费用。基于上述因素企业在实施本系统后可在短期内实现投入产出比提升并在长期运营中获得更高的用户粘性与复购率为企业创造可观的经济收益。社会可行性方面积分兑换商城作为一种正向激励机制能够促进消费者理性消费与绿色消费行为。系统通过积分获取规则的透明化与兑换流程的简化使用户能够清晰了解自身权益并做出合理决策从而提升消费者满意度与信任度。与此同时积分抵扣功能为低收入或预算有限的用户提供了更多消费选择降低了消费门槛具有一定的社会公平性。系统所采用的细粒度权限控制与审计日志不仅满足监管合规要求还能在数据泄露或滥用时提供可追溯证据增强公众对平台安全性的信心。综上所述本研究所构建的系统在促进消费升级、提升社会福利与保障数据安全方面具有良好的社会可行性。技术可行性方面SpringBoot与Spring Cloud生态提供了成熟的微服务开发与治理能力能够满足本研究对高并发、弹性伸缩与容错性的技术需求。通过引入Kafka消息队列实现事件驱动与异步补偿系统能够在分布式环境下保持数据一致性解决传统单体架构中难以实现的跨服务事务问题。Redis缓存层的设计可有效缓解数据库压力防止缓存击穿与雪崩现象同时采用分布式锁与消息重试机制进一步提升系统鲁棒性。安全层面OAuth2授权与细粒度权限控制为用户身份验证与访问控制提供了标准化解决方案审计日志模块则保证了业务操作的可追溯性满足合规要求。容器化部署与Kubernetes编排实现了服务的弹性伸缩与自愈能力降低了运维成本并提升系统可靠性。基于上述技术架构与实现手段本研究所提出的积分兑换商城系统在技术层面具备充分的可行性可在实际业务场景中稳定运行并支持后续功能扩展。八、功能分析系统功能模块设计遵循业务流程与技术架构的耦合原则逻辑分为用户层、业务层与基础设施层三大块。在用户层首先设立用户管理模块负责会员注册、登录、个人资料维护以及积分余额查询随后配置身份认证与授权子模块采用OAuth2协议实现统一登录与细粒度权限控制确保不同角色普通会员、管理员、运营专员在系统中的访问范围得到精准划分。业务层核心由积分管理模块、商品服务模块、订单服务模块和支付服务模块组成。积分管理模块实现积分获取规则配置、实时积分计算、抵扣校验与回收处理并通过事件总线向订单服务广播积分变更商品服务模块维护商品信息、分类标签与多维度检索功能提供库存查询接口并支持库存预警订单服务模块负责兑换订单的创建、状态跟踪、物流信息同步以及退换货流程所有订单状态变更均通过消息队列异步推送给相关业务支付服务模块兼容积分抵扣与现金支付两种方式完成支付确认后触发积分扣减与库存扣减并在事务完成前通过Saga补偿机制保证跨服务一致性。基础设施层聚焦系统治理与运行保障。服务发现与配置中心模块利用注册中心实现微服务自动发现并通过集中配置管理统一维护环境参数缓存层模块使用Redis缓存热点数据如商品详情、积分余额并实现缓存失效与预热策略消息队列模块采用Kafka或RocketMQ实现业务事件的异步传递与补偿提升系统吞吐量与容错性审计日志模块记录所有关键操作与状态变更满足合规审计需求监控告警模块通过PrometheusGrafana采集指标并触发告警实现系统健康可视化。此外为支持后台运营与数据分析系统提供管理控制台模块集成用户管理、积分统计、商品库存监控、订单报表与营销活动配置等功能该控制台通过统一权限体系与安全接口访问后端服务。通过上述模块划分系统实现了从用户身份验证到积分兑换全过程的完整闭环同时在微服务架构下保持高可用、可扩展与易维护的技术特性。九、数据库设计字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注User.id | 用户唯一标识符 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 主键系统内部唯一标识。User.username | 登录用户名必须唯一 | 50 | VARCHAR(50) NOT NULL UNIQUE | | 用于用户登录与身份识别。User.password_hash | 加密后的密码哈希值 | 255 | VARCHAR(255) NOT NULL | | 存储加密后的密码避免明文泄露。User.email | 用户邮箱地址必须唯一 | 100 | VARCHAR(100) NOT NULL UNIQUE | | 用于账号激活与密码重置。User.phone | 联系电话可为空 | 20 | VARCHAR(20) NULL | | 用于客服与订单通知。User.status | 账号状态0-禁用1-正常 | 1 | TINYINT NOT NULL DEFAULT 1 | | 控制账号是否可用。User.created_at | 创建时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | | 自动记录账户创建时间。User.updated_at | 最后更新时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | | 自动记录账户信息最后修改时间。Role.id | 角色唯一标识符 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 主键系统内部唯一标识。Role.name | 角色名称如管理员、会员 | 30 | VARCHAR(30) NOT NULL UNIQUE | | 用于权限控制。Role.description | 角色描述信息可为空 | 255 | VARCHAR(255) NULL | | 对角色功能的文字说明。UserRole.user_id | 用户标识符外键关联 User.id | 10 | INT UNSIGNED NOT NULL | FK to User.id | 关联用户与角色。UserRole.role_id | 角色标识符外键关联 Role.id | 10 | INT UNSIGNED NOT NULL | FK to Role.id | 关联用户与角色。Category.id | 商品分类唯一标识符 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 主键系统内部唯一标识。Category.name | 分类名称如手机、服装 | 50 | VARCHAR(50) NOT NULL UNIQUE | | 用于商品归类。Category.parent_id | 父分类标识符可为空递归自关联 | 10 | INT UNSIGNED NULL DEFAULT NULL | FK to Category.id | 用于多级分类层级。Product.id | 商品唯一标识符 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 主键系统内部唯一标识。Product.category_id | 所属分类标识符外键关联 Category.id | 10 | INT UNSIGNED NOT NULL | FK to Category.id | 指定商品所属分类。Product.name | 商品名称必须唯一 | 100 | VARCHAR(100) NOT NULL UNIQUE | | 商品的官方名称。Product.description | 商品描述信息可为空 | 5000 | TEXT NULL | | 对商品的详细介绍。Product.price | 商品零售价单位为元保留两位小数 | 10,2 | DECIMAL(10,2) NOT NULL DEFAULT 0.00 | | 用于现金支付。Product.point_value | 商品兑换所需积分整数值 | 10 | INT UNSIGNED NOT NULL DEFAULT 0 | | 用于积分抵扣。Product.stock_quantity | 库存数量整数值 | 10 | INT UNSIGNED NOT NULL DEFAULT 0 | | 控制商品可售数量。Product.status | 商品状态0-下架1-上架 | 1 | TINYINT NOT NULL DEFAULT 1 | | 控制商品是否可购买。Product.created_at | 创建时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | | 自动记录商品创建时间。Order.id | 订单唯一标识符 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 主键系统内部唯一标识。Order.user_id | 下单用户标识符外键关联 User.id | 10 | INT UNSIGNED NOT NULL | FK to User.id | 指定订单所属用户。Order.total_amount | 订单总金额元保留两位小数 | 10,2 | DECIMAL(10,2) NOT NULL DEFAULT 0.00 | | 现金支付时的总金额。Order.total_points_used | 使用积分总额整数值 | 10 | INT UNSIGNED NOT NULL DEFAULT 0 | | 积分抵扣的总积分数。Order.status | 订单状态0-待付款1-已付款2-已发货3-已完成4-已取消 | 1 | TINYINT NOT NULL DEFAULT 0 | | 控制订单生命周期。Order.created_at | 创建时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | | 自动记录订单创建时间。OrderItem.id | 订单项唯一标识符 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 主键系统内部唯一标识。OrderItem.order_id | 所属订单标识符外键关联 Order.id | 10 | INT UNSIGNED NOT NULL | FK to Order.id | 指定订单项所属订单。OrderItem.product_id | 商品标识符外键关联 Product.id | 10 | INT UNSIGNED NOT NULL | FK to Product.id | 指定购买的商品。OrderItem.quantity | 购买数量整数值 | 10 | INT UNSIGNED NOT NULL DEFAULT 1 | | 每个订单项的购买数量。OrderItem.unit_price | 商品单价元保留两位小数 | 10,2 | DECIMAL(10,2) NOT NULL DEFAULT 0.00 | | 当前订单时的商品单价。OrderItem.point_value | 商品单件积分值整数值 | 10 | INT UNSIGNED NOT NULL DEFAULT 0 | | 当前订单时的商品积分值。Payment.id | 支付记录唯一标识符 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 主键系统内部唯一标识。Payment.order_id | 所属订单标识符外键关联 Order.id | 10 | INT UNSIGNED NOT NULL | FK to Order.id | 指定支付所属订单。Payment.payment_type | 支付方式POINT-积分CASH-现金 | 10 | ENUM(POINT,CASH) NOT NULL DEFAULT CASH | | 标识支付类型。Payment.amount | 支付金额元保留两位小数仅现金支付时有效 | 10,2 | DECIMAL(10,2) NOT NULL DEFAULT 0.00 | | 实际支付金额。Payment.status | 支付状态0-待支付1-已支付2-失败 | 1 | TINYINT NOT NULL DEFAULT 0 | | 控制支付过程。Payment.paid_at | 支付完成时间戳可为空 | 19 | DATETIME NULL DEFAULT NULL | | 记录支付成功时间。PointTransaction.id | 积分变动唯一标识符 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 主键系统内部唯一标识。PointTransaction.user_id | 用户标识符外键关联 User.id | 10 | INT UNSIGNED NOT NULL | FK to User.id | 指定积分变动所属用户。PointTransaction.order_id | 关联订单标识符可为空外键关联 Order.id | 10 | INT UNSIGNED NULL DEFAULT NULL | FK to Order.id | 与订单相关的积分变动。PointTransaction.change_amount | 积分变动量正数为获取负数为抵扣或退款 | 10,2 | DECIMAL(10,2) NOT NULL DEFAULT 0.00 | | 积分增减值。PointTransaction.balance_after | 变动后余额整数值 | 10 | INT UNSIGNED NOT NULL DEFAULT 0 | | 当前用户积分余额。PointTransaction.type | 积分变动类型EARN-获取REDEEM-抵扣REFUND-退款 | 10 | ENUM(EARN,REDEEM,REFUND) NOT NULL DEFAULT EARN | | 标识变动来源。PointTransaction.description | 变动说明可为空 | 255 | VARCHAR(255) NULL | | 对变动原因的文字描述。PointTransaction.created_at | 创建时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | | 自动记录积分变动时间。Address.id | 地址唯一标识符 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 主键系统内部唯一标识。Address.user_id | 所属用户标识符外键关联 User.id | 10 | INT UNSIGNED NOT NULL | FK to User.id | 指定地址所属用户。Address.recipient_name | 收件人姓名必填 | 100 | VARCHAR(100) NOT NULL | | 用于物流配送。Address.phone | 联系电话必填 | 20 | VARCHAR(20) NOT NULL | | 用于配送与客服。Address.address_line1 | 地址第一行必填 | 200 | VARCHAR(200) NOT NULL | | 包含街道、门牌号等信息。Address.address_line2 | 地址第二行可为空 | 200 | VARCHAR(200) NULL DEFAULT NULL | | 街道补充信息。Address.city | 城市必填 | 100 | VARCHAR(100) NOT NULL | | 用于配送地址。Address.state | 州/省必填 | 100 | VARCHAR(100) NOT NULL | | 用于配送地址。Address.postal_code | 邮政编码必填 | 20 | VARCHAR(20) NOT NULL | | 用于配送地址。Address.country | 国家必填 | 100 | VARCHAR(100) NOT NULL DEFAULT 中国 | | 用于配送地址。Address.created_at | 创建时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | | 自动记录地址创建时间。Address.updated_at | 最后更新时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | | 自动记录地址信息最后修改时间。十、建表语句CREATE DATABASE IF NOT EXISTS point_mall DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;USE point_mall;-- 用户表CREATE TABLE users (id INT UNSIGNED NOT NULL AUTO_INCREMENT,username VARCHAR(50) NOT NULL,password_hash VARCHAR(255) NOT NULL,email VARCHAR(100) NOT NULL,phone VARCHAR(20) DEFAULT NULL,status TINYINT NOT NULL DEFAULT 1,created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (id),UNIQUE KEY uk_users_username (username),UNIQUE KEY uk_users_email (email),UNIQUE KEY uk_users_phone (phone)) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;-- 角色表CREATE TABLE roles (id INT UNSIGNED NOT NULL AUTO_INCREMENT,name VARCHAR(30) NOT NULL,description VARCHAR(255) DEFAULT NULL,PRIMARY KEY (id),UNIQUE KEY uk_roles_name (name)) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;-- 用户角色关联表CREATE TABLE user_roles (user_id INT UNSIGNED NOT NULL,role_id INT UNSIGNED NOT NULL,PRIMARY KEY (user_id, role_id),KEY idx_user_roles_user_id (user_id),KEY idx_user_roles_role_id (role_id),CONSTRAINT fk_user_roles_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_user_roles_role FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;-- 商品分类表CREATE TABLE categories (id INT UNSIGNED NOT NULL AUTO_INCREMENT,name VARCHAR(50) NOT NULL,parent_id INT UNSIGNED DEFAULT NULL,PRIMARY KEY (id),UNIQUE KEY uk_categories_name (name),KEY idx_categories_parent_id (parent_id),CONSTRAINT fk_categories_parent FOREIGN KEY (parent_id) REFERENCES categories(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;-- 商品表CREATE TABLE products (id INT UNSIGNED NOT NULL AUTO_INCREMENT,category_id INT UNSIGNED NOT NULL,name VARCHAR(100) NOT NULL,description TEXT DEFAULT NULL,price DECIMAL(10,2) NOT NULL DEFAULT 0.00,point_value INT UNSIGNED NOT NULL DEFAULT 0,stock_quantity INT UNSIGNED NOT NULL DEFAULT 0,status TINYINT NOT NULL DEFAULT 1,created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (id),UNIQUE KEY uk_products_name (name),KEY idx_products_category_id (category_id),CONSTRAINT fk_products_category FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE RESTRICT ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;-- 订单表CREATE TABLE orders (id INT UNSIGNED NOT NULL AUTO_INCREMENT,user_id INT UNSIGNED NOT NULL,total_amount DECIMAL(10,2) NOT NULL DEFAULT 0.00,total_points_used INT UNSIGNED NOT NULL DEFAULT 0,status TINYINT NOT NULL DEFAULT 0,created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (id),KEY idx_orders_user_id (user_id),CONSTRAINT fk_orders_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;-- 订单项表CREATE TABLE order_items (id INT UNSIGNED NOT NULL AUTO_INCREMENT,order_id INT UNSIGNED NOT NULL,product_id INT UNSIGNED NOT NULL,quantity INT UNSIGNED NOT NULL DEFAULT 1,unit_price DECIMAL(10,2) NOT NULL DEFAULT 0.00,point_value INT UNSIGNED NOT NULL DEFAULT 0,PRIMARY KEY (id),KEY idx_order_items_order_id (order_id),KEY idx_order_items_product_id (product_id),CONSTRAINT fk_order_items_order FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_order_items_product FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE RESTRICT ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;-- 支付表CREATE TABLE payments (id INT UNSIGNED NOT NULL AUTO_INCREMENT,order_id INT UNSIGNED NOT NULL,payment_type ENUM(POINT,CASH) NOT NULL DEFAULT CASH,amount DECIMAL(10,2) NOT NULL DEFAULT 0.00,status TINYINT NOT NULL DEFAULT 0,paid_at DATETIME DEFAULT NULL,PRIMARY KEY (id),KEY idx_payments_order_id (order_id),CONSTRAINT fk_payments_order FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;-- 积分变动表CREATE TABLE point_transactions (id INT UNSIGNED NOT NULL AUTO_INCREMENT,user_id INT UNSIGNED NOT NULL,order_id INT UNSIGNED DEFAULT NULL,change_amount INT SIGNED NOT NULL DEFAULT 0,balance_after INT UNSIGNED NOT NULL DEFAULT 0,type ENUM(EARN,REDEEM,REFUND) NOT NULL DEFAULT EARN,description VARCHAR(255) DEFAULT NULL,created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (id),KEY idx_point_transactions_user_id (user_id),KEY idx_point_transactions_order_id (order_id),CONSTRAINT fk_point_transactions_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_point_transactions_order FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;-- 地址表CREATE TABLE addresses (id INT UNSIGNED NOT NULL AUTO_INCREMENT,user_id INT UNSIGNED NOT NULL,recipient_name VARCHAR(100) NOT NULL,phone VARCHAR(20) NOT NULL,address_line1 VARCHAR(200) NOT NULL,address_line2 VARCHAR(200) DEFAULT NULL,city VARCHAR(100) NOT NULL,state VARCHAR(100) NOT NULL,postal_code VARCHAR(20) NOT NULL,country VARCHAR(100) NOT NULL DEFAULT 中国,created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (id),KEY idx_addresses_user_id (user_id),CONSTRAINT fk_addresses_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方获取联系方式