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

目录

  • 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.mzph.cn/diannao/65124.shtml

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

相关文章

kkfileview代理配置,Vue对接kkfileview实现图片word、excel、pdf预览

kkfileview部署 官网:https://kkfileview.keking.cn/zh-cn/docs/production.html 这个是官网部署网址,这里推荐大家使用docker镜像部署,因为我是直接找运维部署的,所以这里我就不多说明了,主要说下nginx代理配置&am…

扩散模型经典问题:训练Diffusion Models的Loss有什么特别之处?

AIGC算法工程师 面试八股文 Diffusion Loss的推导原理?训练Diffusion Models的Loss有什么特别之处?Diffusion Models的Loss下降趋势是什么样的?为什么训练Diffusion Models的Loss会有这样的特征? 目录 Diffusion Loss的推导原理 一般Diffusion Models训练Loss特征 Loss可…

【数据可视化案列】白葡萄酒质量数据的EDA可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

MyBatis 的一级缓存和二级缓存

MyBatis 提供了两种缓存机制,分别是 一级缓存 和 二级缓存。它们可以显著提高数据库操作的性能,通过减少数据库的访问次数,但它们的工作原理、作用范围以及使用方式有所不同。 一、一级缓存 1. 概述 一级缓存是 SqlSession 级别的缓存&…

压缩qcow2镜像带来的性能损失简单分析

本文拟对压缩qcow2镜像所带来的虚拟机性能损失进行简单分析 背景 生产中发现使用压缩镜像启动的虚拟机开机总是会慢一些。 qcow2镜像的压缩方式为:qemu-img convert -p -c -O qcow2 zero_disk.qcow2 compress_disk.qcow2 分析 qemu代码:https://down…

数据结构之栈,队列,树

目录 一.栈 1.栈的概念及结构 2.栈的实现 3.实现讲解 1.初始化栈 2.销毁栈 3.压栈 4.出栈 5.返回栈顶元素 6.返回栈内元素个数 7.判断栈内是否为空 二.队列 1.队列的概念及结构 2.队列的实现 3.实现讲解 1.初始化队列 2.销毁队列 3.单个成员入队列 4.单个成员…

2、C#基于.net framework的应用开发实战编程 - 设计(二、三) - 编程手把手系列文章...

二、设计; 二.三、构建数据库; 此例子使用的是SQLite数据库,所以数据库工具用的SQLiteStudio x64,这个是SQLite专用的数据库设计管理工具,其它的数据库管理工具比如DBeaver的使用请见实战工具系列文章。 1、…

“信任构建”:网上购物商城的用户评价与信誉系统

2 相关技术 2.1 SSM框架介绍 本课题程序开发使用到的框架技术,英文名称缩写是SSM,在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等,作为一个课题程序采用SSH框架也可以,SSM框架也可以,SpringMVC也可以。SSH框架…

云技术基础

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&…

单点Redis所面临的问题及解决方法

1.数据丢失问题 大家可以设想一下这个场景,假如我们现在只有一个Redis,即单点Redis,我们在往Redis中添加数据的时候突然宕机了,那数据怎么办,如果是一条还好,我在敲一遍就行,那我敲了一万行都没…

计算机组成原理的学习笔记(8)-- 指令系统·其一 指令的组成以及数据寻址方式

学习笔记 前言 ​ 本文主要是对于b站尚硅谷的计算机组成原理的学习笔记,仅用于学习交流。 1. 指令 1.1 组成 操作码(Opcode):指指令中执行特定操作的部分。地址码:指令中用于指定操作数位置的部分。 1.2 扩展操作…

汇总贴:cocos creator

1 cocoscreator-doc-TS:目录-CSDN博客 访问节点和组件 常用节点和组件接口 创建和销毁节点 加载和切换场景 获取和设置资源 监听和发射事件 节点系统事件 缓动系统(cc.tween) 使用计时器 使用对象池 使用 TypeScript 脚本 模块化脚本 脚本执行顺序 全局…

RAGFlow 基于深度文档理解构建的开源 RAG引擎 - 安装部署

RAGFlow 基于深度文档理解构建的开源 RAG引擎 - 安装部署 flyfish 1. 确保 vm.max_map_count ≥ 262144 这是指要调整Linux内核参数vm.max_map_count,以确保其值至少为262144。这个参数控制着进程可以映射的最大内存区域数量。对于某些应用程序(如Ela…

2024.2 ACM Explainability for Large Language Models: A Survey

Explainability for Large Language Models: A Survey | ACM Transactions on Intelligent Systems and Technology 问题 可解释性问题:大语言模型(LLMs)内部机制不透明,难以理解其决策过程,如在自然语言处理任务中&…

docker与docker-compose版本对应

1、说明 docker 和 docker-compose 是两个独立但又紧密相关的工具,docker用于管理docker容器,docker-compose用于编排多docker容器应用。了解它们之间的版本对应关系有助于确保在使用 docker-compose 时不会遇到兼容性问题。 2、docker与docker-compos…

【Nginx系列】---Nginx配置tcp转发

参考 Nginx 配置文件: error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_connections 1024; }stream {# 第一个服务转发upstream mysqltest {server 172.16.187.142:9000;}server {listen 9000;proxy_pass mysqltest;}…

Micropython RPI-PICO 随记-DS3231和RTC

开发环境 MCU:Pico1(无wifi版)时钟模块:DS3231使用固件:自编译版本开发环境:MacBook Pro Sonoma 14.5开发工具:Thonny 4.1.6开发语言:MicroPython 1.24.0 知识记录 DS3231是一款高…

SQLSERVER、MYSQL LIKE查询特殊字符和转义字符相同与不同

SQL Server 和 MySQL 都支持 LIKE 操作符进行模式匹配,但它们在处理特殊字符和转义字符方面有一些差异。尽管两者有很多相似之处,但在某些细节上并不完全通用。以下是 SQL Server 和 MySQL 在 LIKE 操作符使用上的比较: 通配符 百分号 %&am…

【动态规划篇】步步带你深入解答成功AC最优包含问题(通俗易懂版)

本篇小鸡汤:待到苦尽甘来时,我给你讲讲来时路。 欢迎拜访:羑悻的小杀马特.-CSDN博客 本篇主题:解答洛谷的最优包含问题 制作日期:2024.12.23 隶属专栏:C/C题海汇总 ​​ 目录 本篇简介: 一动态…

Intent--组件通信

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