家政预约小程序数据库设计

目录

  • 1 如何设计表结构
    • 1.1 用户表
    • 1.2 服务分类表
    • 1.3 服务表
    • 1.4 服务规格表
    • 1.5 订单表
    • 1.6 服务人员表
    • 1.7 评价表
    • 1.8 促销活动表
    • 1.9 投诉表
    • 1.10 年卡表
    • 1.11 派单表
    • 1.12 支付记录表
    • 1.13 通知记录表
    • 1.14 优惠券表
    • 1.15 用户优惠券表
    • 1.16 消息模板表
    • 1.17 积分记录表

经过一系列的设计,我们现在对于用户的需求,整体的模块划分已经有了基本的把握。基于模块结合工作量的评估也给出了工时的评估。现实中用户关心的核心三问,能不能做,多少钱做,什么时间交付。把这三个问题回答好了,客户经过比价之后基本上就成交了,剩下的事情就是开发的事情了。

本篇我们介绍进入开发阶段后第一件要做的事情,数据库的设计。

1 如何设计表结构

表拆分的思路,一般是结合我们的需求,和客户确认的原型,在满足业务的基础上,方便用户后续录入和维护数据进行设计。

一般我们是要做表拆分,把不同阶段的数据放入到不同的表中。比如我们要管理用户的数据和员工的数据,所以我设计顾客表和员工表,有如下的表结构

1.1 用户表

表名:Users

描述:存储顾客的基本信息,在用户下单时候显示

字段说明:

字段名数据类型是否主键是否必填描述
idINT用户唯一标识
nameVARCHAR(50)用户姓名
phoneVARCHAR(20)用户手机号
emailVARCHAR(100)用户邮箱
addressTEXT用户地址
created_atDATETIME用户注册时间

设计思路与使用场景

  • 用户表是系统的基础表,用于存储所有顾客的基本信息。为防止用户重复注册,可对手机号添加唯一约束。
  • 在用户注册、登录、订单下单、查看订单等功能中需要关联用户表。

1.2 服务分类表

表名:Service_Category

描述:存储服务的分类信息,用于在首页及分类页显示家政公司开展的具体业务

字段说明:

字段名数据类型是否主键是否必填描述
idINT分类唯一标识
nameVARCHAR(50)分类名称
descriptionTEXT分类描述
created_atDATETIME创建时间

设计思路与使用场景

  • 家政服务通常有多种分类,例如“清洁”、“月嫂服务”、“家电维修”等。分类表方便前端页面按照分类展示。
  • 在首页的分类展示及用户筛选服务时,分类表作为基础数据被频繁使用。

1.3 服务表

表名:Service

描述:存储服务的详细信息,用于在服务的详情页显示具体的内容

字段说明:

字段名数据类型是否主键是否必填描述
idINT服务唯一标识
category_idINT所属分类 ID(外键)
nameVARCHAR(50)服务名称
descriptionTEXT服务描述
priceDECIMAL(10,2)服务价格
imageVARCHAR(255)服务图片
salesINT销量
ratingDECIMAL(3,2)服务评分
created_atDATETIME创建时间

设计思路与使用场景

  • 服务表记录具体的服务信息,通过分类表的 category_id 字段与分类表关联,方便按分类查询服务。
  • 在用户浏览服务详情、下单或参与促销活动时,服务表是数据的来源。

1.4 服务规格表

表名:Service_Specification

描述:存储服务的规格信息,方便用户下单的时候选择具体的规格信息

字段说明:

字段名数据类型是否主键是否必填描述
idINT规格唯一标识
service_idINT服务 ID(外键)
durationINT服务时长(单位:小时)
num_peopleINT服务人数
priceDECIMAL(10,2)对应规格的价格

设计思路与使用场景

  • 某些服务可能有不同的规格(如“基础清洁2小时”、“深度清洁4小时”),因此需要通过服务规格表存储规格信息。
  • 用户下单时选择具体规格,订单表会通过 specification_id 字段关联服务规格。

1.5 订单表

表名:Order

描述:存储订单信息,记录用户的订单的具体情况

字段说明:

字段名数据类型是否主键是否必填描述
idINT订单唯一标识
user_idINT用户 ID(外键)
service_idINT服务 ID(外键)
specification_idINT服务规格 ID(外键)
total_priceDECIMAL(10,2)总价格
statusENUM订单状态(待支付、已支付、已取消)
notesTEXT订单备注
addressTEXT服务地址
contact_phoneVARCHAR(20)联系电话
service_timeDATETIME服务时间
created_atDATETIME下单时间

设计思路与使用场景

  • 订单表记录用户的订单信息,通过外键关联用户表、服务表和服务规格表,确保订单数据的完整性。
  • 在订单管理、支付功能及订单历史记录展示中,订单表是主要数据源。

1.6 服务人员表

表名:Service_Staff

描述:存储员工信息,用于在订单分配时候选择具体的人员

字段说明:

字段名数据类型是否主键是否必填描述
idINT服务人员唯一标识
nameVARCHAR(50)服务人员姓名
phoneVARCHAR(20)联系电话
skillsTEXT擅长技能
ratingDECIMAL(3,2)评分
is_availableBOOLEAN是否接单
created_atDATETIME创建时间

设计思路与使用场景

  • 记录服务人员的基本信息及其工作状态,通过字段记录所属部门和擅长服务类型等信息,支持服务人员的管理与调度。
  • 用于服务派单、服务质量管理和服务人员考核,是服务体系的重要数据支撑。

1.7 评价表

表名:Review

描述:存储评价信息,用于在服务完成后由用户进行评价

字段说明:

字段名数据类型是否主键是否必填描述
idINT评价唯一标识
order_idINT订单 ID(外键)
user_idINT用户 ID(外键)
staff_idINT服务人员 ID(外键)
ratingDECIMAL(3,2)用户评分
contentTEXT评价内容
created_atDATETIME评价时间

设计思路与使用场景

  • 记录用户对服务的反馈信息,通过外键关联订单表、用户表和服务表,确保评价与具体服务和用户的对应关系,同时支持评价内容的多样化(评分、文字、图片等)。
  • 用于服务质量分析、用户满意度调查、用户评价展示,帮助平台优化服务。

1.8 促销活动表

表名:Promotion

描述:存储促销信息,用于在首页展示具体的活动

字段说明:

字段名数据类型是否主键是否必填描述
idINT活动唯一标识
service_idINT服务 ID(外键)
original_priceDECIMAL(10,2)原价
discounted_priceDECIMAL(10,2)优惠价
start_timeDATETIME活动开始时间
end_timeDATETIME活动结束时间

设计思路与使用场景

  • 记录平台提供的各种活动信息,通过优惠券或活动规则字段实现促销策略的灵活配置。
  • 在活动推广中,为用户提供限时优惠、满减、折扣等促销信息,是订单结算中计算优惠的重要依据。

1.9 投诉表

表名:Complaint

描述:存储投诉信息,用于在用户对服务不满意时进行投诉

字段说明:

字段名数据类型是否主键是否必填描述
idINT投诉唯一标识
order_idINT订单 ID(外键)
user_idINT用户 ID(外键)
staff_idINT服务人员 ID(外键)
contentTEXT投诉内容
statusENUM投诉状态(处理中、已完成)
created_atDATETIME投诉时间

设计思路与使用场景

  • 用于记录用户对订单或服务的投诉,通过外键关联用户表、订单表和服务人员表,确保投诉有据可查,同时记录处理状态和反馈结果。
  • 在客服处理投诉、提升用户体验以及监控服务质量中,投诉表是客服系统的核心数据来源。

1.10 年卡表

表名:Membership_Card

描述:存储年卡信息,用于在我的页面购买年卡

字段说明:

字段名数据类型是否主键是否必填描述
idINT年卡唯一标识
user_idINT用户 ID(外键)
service_idINT对应服务 ID(外键)
total_timesINT总次数
used_timesINT已使用次数
expire_dateDATETIME到期日期

设计思路与使用场景

  • 记录用户购买的年卡信息,包括有效期、权益和消费限制,通过外键关联用户表,确保年卡与用户绑定。
  • 用于用户年卡权益管理和验证,在下单时判定用户是否可享受年卡优惠或免单权益。

1.11 派单表

表名:Assignment

描述:存储派单信息,用于记录派单的过程

字段说明:

字段名数据类型是否主键是否必填描述
idINT派单唯一标识
order_idINT订单 ID(外键)
staff_idINT服务人员 ID(外键)
assigned_atDATETIME派单时间
statusENUM派单状态(已派单、服务中、已完成)

设计思路与使用场景

  • 记录订单的服务分配情况,通过外键关联订单表、服务人员表,确保每个订单都有明确的服务责任人。
  • 在服务派发和服务人员管理中,用于分配任务、记录服务进度,派单表是服务调度的重要工具。

1.12 支付记录表

表名:Payment

描述:存储订单支付相关信息,包括支付时间、金额和状态等。

字段说明:

字段名数据类型是否主键是否必填描述
idINT支付记录唯一标识
order_idINT关联的订单 ID(外键)
user_idINT用户 ID(外键)
amountDECIMAL(10,2)支付金额
payment_methodENUM支付方式(微信、支付宝、银行卡)
payment_statusENUM支付状态(成功、失败、处理中)
created_atDATETIME支付时间

设计思路与使用场景

  • 记录订单的支付信息,通过外键关联订单表和用户表,确保支付与订单对应,同时记录支付状态,支持多种支付方式。
  • 用于支付验证、退款处理、账单记录等功能,是支付功能的核心表。

1.13 通知记录表

表名:Notification

描述:记录用户接收到的系统通知,比如订单状态变化、活动推送等。

字段说明:

字段名数据类型是否主键是否必填描述
idINT通知记录唯一标识
user_idINT用户 ID(外键)
titleVARCHAR(100)通知标题
contentTEXT通知内容
typeENUM通知类型(订单、活动、系统)
is_readBOOLEAN是否已读(默认未读)
created_atDATETIME通知时间

设计思路与使用场景

  • 记录用户接收到的系统通知,通过外键关联用户表,确保通知针对特定用户,同时支持已读状态标记和多种通知类型。
  • 用于用户提醒(如订单状态更新、活动推广等),支持在系统通知页面展示和提醒用户操作。

1.14 优惠券表

表名:Coupon

描述:存储优惠券信息,用于用户领取和下单时抵扣。

字段说明:

字段名数据类型是否主键是否必填描述
idINT优惠券唯一标识
nameVARCHAR(50)优惠券名称
descriptionTEXT优惠券描述
discount_typeENUM优惠类型(满减、折扣)
discount_valueDECIMAL(10,2)优惠金额或折扣率
min_order_amountDECIMAL(10,2)最低使用金额限制
expire_dateDATETIME到期时间
created_atDATETIME创建时间

设计思路与使用场景

  • 存储平台创建的优惠券信息,包括使用规则和有效期,通过字段支持多种优惠类型(满减、折扣)。
  • 用于营销活动和下单时的优惠抵扣,是用户优惠计算的重要数据来源。

1.15 用户优惠券表

表名:User_Coupon

描述:记录用户领取的优惠券及使用情况。

字段说明:

字段名数据类型是否主键是否必填描述
idINT用户优惠券唯一标识
user_idINT用户 ID(外键)
coupon_idINT优惠券 ID(外键)
is_usedBOOLEAN是否已使用
used_atDATETIME使用时间
created_atDATETIME领取时间

设计思路与使用场景

  • 记录用户领取的优惠券及其使用情况,通过外键关联用户表和优惠券表,确保优惠券的领取和使用有据可查。
  • 在用户领取优惠券、下单使用优惠券以及优惠券过期提醒时使用。

1.16 消息模板表

表名:Message_Template

描述:存储系统自动通知或提醒的模板内容,支持不同场景下的通知。

字段说明:

字段名数据类型是否主键是否必填描述
idINT模板唯一标识
titleVARCHAR(100)模板标题
contentTEXT模板内容
typeENUM模板类型(短信、公众号、系统通知)
created_atDATETIME创建时间

设计思路与使用场景

  • 存储系统的通知模板,包括内容和通知类型,通过字段支持不同渠道(短信、公众号推送、系统通知)的消息发送。
  • 在订单状态变更提醒、活动推广和积分奖励通知中,消息模板表提供自动化消息内容生成。

1.17 积分记录表

表名:Points_Record

描述:记录用户积分的变化,用于激励用户消费和评价。

字段说明:

字段名数据类型是否主键是否必填描述
idINT积分记录唯一标识
user_idINT用户 ID(外键)
change_typeENUM积分变化类型(消费奖励、评价奖励、活动奖励、扣除)
change_amountINT积分变化数量
current_pointsINT当前积分总数
created_atDATETIME变化时间

设计思路与使用场景

  • 记录用户积分的变动情况,通过外键关联用户表,确保积分与用户绑定,同时支持多种积分变动类型(奖励、扣除)。
  • 用于用户激励(如消费奖励、评价奖励)和积分商城兑换,是用户成长体系的重要组成部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/495907.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

群晖Cloud Sync一键同步让数据管理变得简单

前言:在这个数字化爆炸的时代,数据管理和备份已经变得不可或缺。无论是个人用户还是企业,都需要一种既高效又可靠的方式来管理和备份分散在各种设备和云存储中的文件。而群晖的 **Cloud Sync** 套件正是为了解决这个问题而生。 Cloud Sync 是…

IntelliJ IDEA Docker集成

一、概述 Docker是一种用于在隔离和可复制环境中部署和运行可执行文件的工具。这可能很有用,例如,在与生产相同的环境中测试代码。 IntelliJ IDEA集成了Docker功能,并为创建Docker映像、运行Docker容器、管理Docker Compose应用程序、使用公…

AES 与 SM4 加密算法:深度解析与对比

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

《战神:诸神黄昏》游戏运行时提示mss32.dll丢失怎么办?

《战神:诸神黄昏》游戏运行时提示mss32.dll丢失怎么办? 作为一名软件开发从业者,深知电脑游戏运行时可能会遇到的各种问题,尤其是文件丢失、文件损坏和系统报错等情况。今天,我们就来探讨一下当《战神:诸神…

01.HTTPS的实现原理-HTTPS的概念

01.HTTPS的实现原理-HTTPS的概念 简介1. HTTPS的概念和安全性2. HTTPS的实现原理3. HTTPS和HTTP的区别4. OSI七层协议模型5. SSL和TLS的区别 简介 该系列文章主要讲述了HTTPS协议与HTTP协议的区别,以及HTTPS如何实现安全传输。内容分为三部分:HTTPS的实…

【3DGS文献阅读】Splatter Image: Ultra-Fast Single-View 3D Reconstruction

Splatter Image: Ultra-Fast Single-View 3D Reconstruction 1 背景2 摘要3 简介4 相关工作4.1 单视图的三维重建表示4.2 使用点云进行三维重建4.3 概率三维重建 5 方法6 读文献记录 1 背景 标题:Splatter Image: Ultra-Fast Single-View 3D Reconstruction 溅射图…

PDF书籍《手写调用链监控APM系统-Java版》第7章 插件与链路的结合:Tomcat插件实现

本人阅读了 Skywalking 的大部分核心代码,也了解了相关的文献,对此深有感悟,特此借助巨人的思想自己手动用JAVA语言实现了一个 “调用链监控APM” 系统。本书采用边讲解实现原理边编写代码的方式,看本书时一定要跟着敲代码。 作者…

Intent--组件通信

组件通信1 获取子活动的返回值 创建Activity时实现自动注册!【Activity必须要注册才能使用】 默认 LinearLayout 布局,注意 xml 中约束布局的使用; 若需要更改 线性布局 只需要将标签更改为 LinearLayout 即可,记得 设置线性布局…

Unittest02|TestSuite、TestRunner、HTMLTestRunner、处理excel表数据、邮件接收测试结果

目录 八、测试套件TestSuite和测试运行器TestRunner 1、基本概念 2、创建和使用测试套件 3、 自动发现测试用例、创建测试套件、运行测试 4、生成html的测试报告:HTMLTestRunner 1️⃣导入HTMLTestRunner模块 2️⃣运行测试用例并生成html文件 九、unittest…

汽车免拆诊断案例 | 2011 款奔驰 S400L HYBRID 车发动机故障灯异常点亮

故障现象 一辆2011款奔驰 S400L HYBRID 车,搭载272 974发动机和126 V高压电网系统,累计行驶里程约为29万km。车主反映,行驶中发动机故障灯异常点亮。 故障诊断 接车后试车,组合仪表上的发动机故障灯长亮;用故障检测…

【Java 数据结构】面试题 02.02. 返回倒数第 k 个节点

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 题目 2. 解析 2.1 普通方法 2.1 快慢节点方法 3. 代码实现 3.1 普通方法 3.2 快慢节点方法 4. 小结 1. 题目 实现一种算法,找出单向链表…

如何在 Scrum 管理中化解团队冲突?

在Scrum管理中,团队协作是项目成功的关键。然而,团队冲突是难以避免的,尤其是在快速变化的敏捷环境中。如何有效处理团队冲突,不仅是Scrum Master需要面对的挑战,也是整个团队提升效率的机会。本文将围绕团队冲突的原因…

【QED】爱丽丝与混沌的无尽海

文章目录 题目题目描述输入输出格式数据范围测试样例 思路代码复杂度分析时间复杂度空间复杂度 题目 题目链接🔗 题目描述 如图所示,爱丽丝在一个3x3的迷宫之中,每个方格中标有 1 − 9 1-9 1−9各不相同的数字,爱丽丝可以从一格…

yii2 手动添加 phpoffice\phpexcel

1.下载地址:https://github.com/PHPOffice/PHPExcel 2.解压并修改文件名为phpexcel 在yii项目的vendor目录下创建一个文件夹命名为phpoffice 把phpexcel目录放到phpoffic文件夹下 查看vendor\phpoffice\phpexcel目录下会看到这些文件 3.到vendor\composer目录下…

排序算法之快速排序、归并排序

目录 快速排序归并排序的意义 快速排序 思维步骤 具体思想 测试样例解释 代码实现 归并排序 思维步骤 具体思想 测试样例解释 代码实现 快速排序归并排序的意义 快速排序和归并排序不仅仅是一种方法,更重要的是其作为一种算法而节省时间,在…

《信管通低代码信息管理系统开发平台》Windows环境安装说明

1 简介 《信管通低代码信息管理系统应用平台》提供多环境软件产品开发服务,包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发,满足其独特需求。无论是简单的应用还是复杂的系统&…

攻防世界web第三题file_include

<?php highlight_file(__FILE__);include("./check.php");if(isset($_GET[filename])){$filename $_GET[filename];include($filename);} ?>惯例&#xff1a; 代码审查&#xff1a; 1.可以看到include(“./check.php”);猜测是同级目录下有一个check.php文…

产品初探Devops!以及AI如何赋能Devops?

DevOps源自Development&#xff08;开发&#xff09;和Operations&#xff08;运维&#xff09;的组合&#xff0c;是一种新的软件工程理念&#xff0c;旨在打破传统软件工程方法中“开发->测试->运维”的割裂模式&#xff0c;强调端到端高效一致的交付流程&#xff0c;实…

初始 ShellJS:一个 Node.js 命令行工具集合

一. 前言 Node.js 丰富的生态能赋予我们更强的能力&#xff0c;对于前端工程师来说&#xff0c;使用 Node.js 来编写复杂的 npm script 具有明显的 2 个优势&#xff1a;首先&#xff0c;编写简单的工具脚本对前端工程师来说额外的学习成本很低甚至可以忽略不计&#xff0c;其…