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

目录

  • 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…

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

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

数据结构之栈,队列,树

目录 一.栈 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框架…

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

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

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

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

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…

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

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

Intent--组件通信

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

table 表格转成 excell 导出

OK,功能非常简单,但是很实用啊! 依赖安装 这里我们需要安装两个依赖: xlsx 和 file-saver,就可以帮助我们实现功能了! npm i xlsx file-saver代码参考 导出方法 utils/index.js import * as XLSX from …

Vivado 编译(单核性能对比+高性能迷你主机+Ubuntu20.04/22.04安装与区别+20.04使用远程命令)

目录 1. 简介 2. 单核性能对比 2.1 PassMark 2.2 geekbench 2.3 CPU-7 2.4 选择 UM790 pro 3. Ubuntu 22.04 物理机 3.1 安装 Ubuntu 22.04 3.2 安装 Vitis 2022.1 3.3 缺点 4. Ubuntu 20.04 物理机 4.1 安装 Ubuntu 20.04 4.2 实用命令 4.2.1 SSH 保持活跃 4.2…

Java期末复习JDBC|网课笔记+校课总结

目录 1、概念 2、JDBC步骤 JDBC的基本步骤: 1、加载数据库驱动:通常使用Class类的forName()静态方法来加载驱动。 2、通过DriverManager获取数据库连接:需要传入3个参数:数据库URL、登陆数据库的用户名和密码。 3、通过Conn…

Require:离线部署 Sourcegraph

Sourcegraph 使读取、编写和修复代码变得容易——即使在庞大而复杂的代码库中。 代码搜索:搜索所有分支和所有代码主机的所有存储库。代码智能:导航代码、查找引用、查看代码所有者、跟踪历史记录等。修复和重构:一次对许多存储库进行大规模更…

element ui--下拉根据拼音首字母过滤

很多场景下我们的下拉不仅仅要根据选项中的字过滤,还要根据拼音首字母过滤,现在我们来实现下。 要获取汉字拼音,可以用pinyin-pro库来实现 1.导入拼音库 npm install pinyin-pro 下面的代码可以获取companyName的拼音,返回的是…

Vue3 中使用axios

1.安装axios、js-cookie、pinia axios命令行: npm install axios js-cookie命令行: npm install js-cookie store命令行: npm install pinia 2.配置文件 (1)缓存文件配置 src/plugins/auth.js const sessionCache {set (key, valu…

从AI换脸到篡改图像,合合信息如何提升视觉内容安全?

本文目录 引言一、AI“真假之战”下的发展现状与考验挑战1.1 视觉内容安全现状与技术分类1.2视觉内容安全企业1.3视觉内容安全领域挑战 二、开山之石:引领视觉内容安全的创新之路2.1合合内容安全系统2.2发起编制相关技术规范2.3参与篡改检测挑战赛 三、视觉内容安全…

解决Ubuntu下无法装载 Windows D盘的问题

电脑安装了 Windows 和 Ubuntu 24.04 后,在Ubuntu系统上装载 D盘,发现无法装载错误如下: Error mounting /dev/nvme0n1p4 at /media/jackeysong/Data: wrong fs type, bad option, bad superblock on /dev/nvme0n1p4, missing codepage or h…