智慧加油站小程序数据库设计文档

智慧加油站系统 - 数据库与API设计文档

1. 数据库设计

1.1 ER模型

系统的核心实体关系如下:

用户(User) ---< 订单(Order) ---< 加油记录(RefuelRecord)|               |                ||               |                vv               v            油枪(OilGun)
角色(Role)      油品(Oil)          ||               |                |v               v                v
权限(Permission)  价格历史(PriceHistory)  站点(Station)

1.2 数据库表结构

1.2.1 用户相关表
用户表(users)
字段名类型长度允许空主键默认值说明
idint11自增用户ID
usernamevarchar50用户名
passwordvarchar255密码(加密存储)
real_namevarchar50真实姓名
mobilevarchar20手机号码
emailvarchar100电子邮箱
role_idint11角色ID
avatarvarchar255头像URL
statustinyint11状态(1-正常,0-禁用)
last_login_timedatetime最后登录时间
last_login_ipvarchar50最后登录IP
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:username
  • 普通索引:role_idmobile
会员表(members)
字段名类型长度允许空主键默认值说明
idint11自增会员ID
user_idint11关联用户ID
member_novarchar30会员卡号
leveltinyint11会员等级(1-普通,2-银卡,3-金卡,4-钻石)
balancedecimal(10,2)0.00账户余额
pointsint110积分
join_timedatetimeCURRENT_TIMESTAMP加入时间
expire_timedatetime过期时间
statustinyint11状态(1-正常,0-冻结)
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:user_idmember_no
  • 普通索引:level
角色表(roles)
字段名类型长度允许空主键默认值说明
idint11自增角色ID
namevarchar50角色名称
codevarchar50角色编码
descriptionvarchar255角色描述
statustinyint11状态(1-启用,0-禁用)
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:code
权限表(permissions)
字段名类型长度允许空主键默认值说明
idint11自增权限ID
namevarchar50权限名称
codevarchar50权限编码
descriptionvarchar255权限描述
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:code
角色权限关联表(role_permissions)
字段名类型长度允许空主键默认值说明
idint11自增关联ID
role_idint11角色ID
permission_idint11权限ID
created_atdatetimeCURRENT_TIMESTAMP创建时间

索引:

  • 主键:id
  • 唯一索引:role_id, permission_id
1.2.2 订单相关表
订单表(orders)
字段名类型长度允许空主键默认值说明
idint11自增订单ID
order_novarchar50订单编号
member_idint11会员ID
station_idint11加油站ID
oil_idint11油品ID
oil_gun_idint11油枪ID
amountdecimal(10,2)0.00加油金额
quantitydecimal(10,2)0.00加油升数
unit_pricedecimal(10,2)0.00单价
discount_amountdecimal(10,2)0.00优惠金额
payment_methodtinyint11支付方式(1-余额,2-微信,3-支付宝,4-银行卡)
order_typetinyint11订单类型(1-加油,2-充值,3-商品)
statustinyint10状态(0-待支付,1-已支付,2-已完成,3-已取消,4-退款中,5-已退款)
remarkvarchar255备注
paid_timedatetime支付时间
refuel_start_timedatetime加油开始时间
refuel_end_timedatetime加油结束时间
transaction_idvarchar100三方支付交易ID
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:order_no
  • 普通索引:member_idstation_idoil_gun_idstatuscreated_at
支付记录表(payment_records)
字段名类型长度允许空主键默认值说明
idint11自增记录ID
order_idint11订单ID
transaction_novarchar100交易编号
member_idint11会员ID
payment_methodtinyint1支付方式(1-余额,2-微信,3-支付宝,4-银行卡)
amountdecimal(10,2)0.00支付金额
payment_timedatetimeCURRENT_TIMESTAMP支付时间
statustinyint10状态(0-处理中,1-成功,2-失败)
callback_datatext回调数据
external_payment_idvarchar100外部支付系统ID
refund_statustinyint10退款状态(0-无退款,1-部分退款,2-全额退款)
refund_amountdecimal(10,2)0.00退款金额
refund_timedatetime退款时间
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:transaction_noexternal_payment_id
  • 普通索引:order_idmember_idpayment_time
账户流水表(account_transactions)
字段名类型长度允许空主键默认值说明
idint11自增流水ID
transaction_novarchar50流水号
member_idint11会员ID
typetinyint1类型(1-充值,2-消费,3-退款,4-赠送)
amountdecimal(10,2)0.00金额
balancedecimal(10,2)0.00交易后余额
order_idint11关联订单ID
descriptionvarchar255交易描述
operator_idint11操作员ID
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:transaction_no
  • 普通索引:member_idtypeorder_idcreated_at
1.2.3 油品相关表
油品表(oils)
字段名类型长度允许空主键默认值说明
idint11自增油品ID
namevarchar50油品名称
codevarchar20油品编码
typetinyint1油品类型(1-汽油,2-柴油)
standardvarchar20油品标准(如92#,95#)
colorvarchar10颜色表示(十六进制颜色码)
statustinyint11状态(1-可用,0-不可用)
descriptionvarchar255描述
densitydecimal(10,4)密度(kg/L)
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:code
  • 普通索引:typestandard
油品价格表(oil_prices)
字段名类型长度允许空主键默认值说明
idint11自增价格ID
oil_idint11油品ID
station_idint11加油站ID(0表示总部定价)
pricedecimal(10,2)0.00零售价格
cost_pricedecimal(10,2)0.00成本价格
start_timedatetimeCURRENT_TIMESTAMP生效开始时间
end_timedatetime生效结束时间
statustinyint11状态(1-生效,0-历史)
creator_idint11创建人ID
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:oil_id, station_id, start_time
  • 普通索引:station_idstatusstart_time
会员折扣表(member_discounts)
字段名类型长度允许空主键默认值说明
idint11自增折扣ID
leveltinyint1会员等级
oil_idint11油品ID(0表示所有油品)
discount_typetinyint11折扣类型(1-折扣率,2-固定金额)
discount_valuedecimal(10,2)0.00折扣值(折扣率为0-1之间小数)
start_timedatetimeCURRENT_TIMESTAMP生效开始时间
end_timedatetime生效结束时间
statustinyint11状态(1-生效,0-过期)
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 普通索引:leveloil_idstatusstart_timeend_time
1.2.4 站点相关表
加油站表(stations)
字段名类型长度允许空主键默认值说明
idint11自增站点ID
namevarchar100站点名称
codevarchar20站点编码
addressvarchar255详细地址
provincevarchar50省份
cityvarchar50城市
districtvarchar50区县
longitudedecimal(10,6)经度
latitudedecimal(10,6)纬度
contact_personvarchar50联系人
contact_phonevarchar20联系电话
business_hoursvarchar50营业时间
statustinyint11站点状态(1-营业,0-停业,2-维护中)
is_self_servicetinyint10是否自助(1-是,0-否)
manager_idint11站长用户ID
open_datedate开业日期
descriptiontext站点描述
imagevarchar255站点图片
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:code
  • 普通索引:statusprovincecityis_self_service
油罐表(oil_tanks)
字段名类型长度允许空主键默认值说明
idint11自增油罐ID
station_idint11加油站ID
namevarchar50油罐名称
codevarchar20油罐编码
oil_idint11储存油品ID
capacitydecimal(10,2)0.00容量(升)
current_volumedecimal(10,2)0.00当前体积(升)
warning_leveldecimal(10,2)0.00警戒体积(升)
statustinyint11状态(1-正常,0-停用,2-维护中)
last_check_timedatetime最后检查时间
last_fill_timedatetime最后加注时间
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:station_id, code
  • 普通索引:station_idoil_idstatus
油枪表(oil_guns)
字段名类型长度允许空主键默认值说明
idint11自增油枪ID
station_idint11加油站ID
oil_tank_idint11油罐ID
numbervarchar10枪号
positionvarchar50位置描述
oil_idint11油品ID
statustinyint11状态(1-可用,0-不可用,2-维护中)
device_idvarchar50设备ID
flow_meter_idvarchar50流量计ID
is_self_servicetinyint10是否自助(1-是,0-否)
last_maintenance_timedatetime最后维护时间
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:station_id, number
  • 普通索引:station_idoil_tank_idoil_idstatusis_self_service
1.2.5 排班管理相关表
班次定义表(shift_definitions)
字段名类型长度允许空主键默认值说明
idint11自增班次ID
station_idint11加油站ID(0表示所有站点通用)
namevarchar50班次名称(如早班、中班、晚班)
start_timetime开始时间
end_timetime结束时间
durationdecimal(5,2)持续时长(小时)
is_next_daytinyint10是否跨天(0-否,1-是)
min_staffint41最少人数
statustinyint11状态(1-启用,0-禁用)
remarkvarchar255备注
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 普通索引:station_idstatus
排班计划表(shift_schedules)
字段名类型长度允许空主键默认值说明
idint11自增排班ID
station_idint11加油站ID
user_idint11员工用户ID
shift_idint11班次ID
schedule_datedate排班日期
schedule_typetinyint11排班类型(1-正常,2-加班,3-调休)
statustinyint11状态(1-正常,2-已替换,3-已取消)
replaced_byint11替班人ID
create_user_idint11创建人ID
remarkvarchar255备注
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:station_id, user_id, schedule_date, shift_id
  • 普通索引:user_idschedule_datestatusshift_id
考勤记录表(attendance_records)
字段名类型长度允许空主键默认值说明
idint11自增考勤ID
station_idint11加油站ID
user_idint11员工用户ID
shift_schedule_idint11关联排班ID
attendance_datedate考勤日期
check_in_timedatetime签到时间
check_out_timedatetime签退时间
check_in_locationvarchar100签到位置
check_out_locationvarchar100签退位置
check_in_photovarchar255签到照片URL
check_out_photovarchar255签退照片URL
statustinyint10状态(0-未签到,1-已签到未签退,2-已签退,3-迟到,4-早退,5-旷工,6-请假)
work_hoursdecimal(5,2)工作时长(小时)
verify_user_idint11审核人ID
verify_timedatetime审核时间
remarkvarchar255备注
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 普通索引:station_iduser_idattendance_datestatusshift_schedule_id
休假申请表(leave_applications)
字段名类型长度允许空主键默认值说明
idint11自增申请ID
station_idint11加油站ID
user_idint11申请人ID
leave_typetinyint1休假类型(1-事假,2-病假,3-年假,4-调休,5-其他)
start_timedatetime开始时间
end_timedatetime结束时间
durationdecimal(5,2)时长(天)
reasonvarchar255请假原因
attachmentvarchar255附件URL
statustinyint10状态(0-待审核,1-已批准,2-已拒绝,3-已取消)
approver_idint11审批人ID
approve_timedatetime审批时间
approve_commentvarchar255审批意见
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 普通索引:station_iduser_idstatusstart_timeend_time
换班申请表(shift_change_requests)
字段名类型长度允许空主键默认值说明
idint11自增申请ID
station_idint11加油站ID
requester_idint11申请人ID
original_schedule_idint11原排班ID
replacement_user_idint11替班人ID
replacement_shift_idint11替班班次ID(为空表示使用原班次)
request_reasonvarchar255申请原因
statustinyint10状态(0-待确认,1-已确认,2-已拒绝,3-已取消)
confirm_timedatetime确认时间
approve_user_idint11管理员审批人ID
approve_timedatetime管理员审批时间
approve_statustinyint1审批状态(0-待审批,1-已通过,2-已拒绝)
remarkvarchar255备注
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 普通索引:station_idrequester_idreplacement_user_idoriginal_schedule_idstatus
班组管理表(work_teams)
字段名类型长度允许空主键默认值说明
idint11自增班组ID
station_idint11加油站ID
namevarchar50班组名称
leader_idint11班组长ID
descriptionvarchar255描述
statustinyint11状态(1-启用,0-禁用)
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 普通索引:station_idleader_idstatus
班组成员表(team_members)
字段名类型长度允许空主键默认值说明
idint11自增记录ID
team_idint11班组ID
user_idint11成员用户ID
join_timedatetimeCURRENT_TIMESTAMP加入时间
positionvarchar50职位
is_leadertinyint10是否班组长(1-是,0-否)
statustinyint11状态(1-在职,0-离职)
created_atdatetimeCURRENT_TIMESTAMP创建时间
updated_atdatetimeCURRENT_TIMESTAMP更新时间

索引:

  • 主键:id
  • 唯一索引:team_id, user_id
  • 普通索引:user_idstatusis_leader

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

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

相关文章

Matlab 基于专家pid控制的时滞系统

1、内容简介 Matlab 185-基于专家pid控制的时滞系统 可以交流、咨询、答疑 2、内容说明 略 在处理时滞系统&#xff08;Time Delay Systems&#xff09;时&#xff0c;使用传统的PID控制可能会面临挑战&#xff0c;因为时滞会导致系统的不稳定或性能下降。专家PID控制通过结…

MyBatis源码分析のSql执行流程

文章目录 前言一、准备工作1.1、newExecutor 二、执行Sql2.1、getMappedStatement2.2、query 三、Cache装饰器的执行时机四、补充总结 前言 本篇主要介绍MyBatis解析配置文件完成后&#xff0c;执行sql的相关逻辑&#xff1a; public class Main {public static void main(Str…

【MySQL】数据库基础

目录 一、什么是数据库1.1 为什么要有数据库1.2 数据库的本质是什么1.3 在Linux下看一下数据库 二、主流数据库三、基本使用3.1 连接服务器3.2 服务器&#xff0c;数据库&#xff0c;表关系 四、MySQL架构五、SQL分类六、存储引擎6.1 存储引擎是什么6.2 查看存储引擎6.3 存储引…

算是解决可以访问github但无法clone的问题

本文的前提是使用了**且可以正常访问github 查看代理的端口 将其配置到git 首先查看git配置 git config --list然后添加配置&#xff0c;我这边使用的是Hiddfy默认的端口是12334&#xff0c;如果是clash应该是7890 git config --global http.proxy 127.0.0.1:12334其他 删除…

SpringBoot第三站:配置嵌入式服务器使用外置的Servlet容器

目录 1. 配置嵌入式服务器 1.1 如何定制和修改Servlet容器的相关配置 1.server.port8080 2. server.context-path/tx 3. server.tomcat.uri-encodingUTF-8 1.2 注册Servlet三大组件【Servlet&#xff0c;Filter&#xff0c;Listener】 1. servlet 2. filter 3. 监听器…

AdaLoRA 参数 配置:CAUSAL_LM“ 表示因果语言模型任务

AdaLoRA 参数 配置:CAUSAL_LM" 表示因果语言模型任务 config = AdaLoraConfig( init_r=16, # 增加 LoRA 矩阵的初始秩 lora_alpha=32, target_modules=[“q_proj”, “v_proj”], lora_dropout=0.1, bias=“none”, task_type=“CAUSAL_LM” ) 整体功能概述 AdaLoraCon…

IP 协议

文章目录 IP 协议概述数据包格式首部校验和实例分析实例一 分片抓包分析参考 本文为笔者学习以太网对网上资料归纳整理所做的笔记&#xff0c;文末均附有参考链接&#xff0c;如侵权&#xff0c;请联系删除。 IP 协议 概述 IP 协议是 TCP/IP 协议簇中的核心协议&#xff0c;也…

日常开发记录-radioGroup组件

日常开发记录-radioGroup组件 1.前提2.问题&#xff1a;无限循环调用3.解释Vue 事件传播机制分析与无限循环原因解释4.解决 1.前提 在上一章的&#xff0c;我们实现了radio组件。从这进入了解 新增个radioGroup组件呢。 <template><divclass"q-radio-group&quo…

API调用comfyui工作流,做一个自己的app,chatgpt给我写的前端,一键创建自己的卡通形象,附源码

前言 工具介绍 首先 comfyui你是少不了的&#xff0c;这个是工作流的后端支持&#xff0c;用这个去调试工作流和生成API可调用文件 前端我们就用很流行的gradio吧&#xff0c;什么你一时半会没有学gradio的计划&#xff0c;没事&#xff0c;笔者也没系统学过&#xff0c;我干…

【网络】数据流(Data Workflow)Routes(路由)、Controllers(控制器)、Models(模型) 和 Middleware(中间件)

在图片中&#xff0c;数据流&#xff08;Data Workflow&#xff09;描述了应用程序中数据的流动过程&#xff0c;涉及 Routes&#xff08;路由&#xff09;、Controllers&#xff08;控制器&#xff09;、Models&#xff08;模型&#xff09; 和 Middleware&#xff08;中间件&…

【通义千问】蓝耘智算 | 智启未来:蓝耘MaaS×通义QwQ-32B引领AI开发生产力

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈人工智能与大模型应用 ⌋ ⌋ ⌋ 人工智能&#xff08;AI&#xff09;通过算法模拟人类智能&#xff0c;利用机器学习、深度学习等技术驱动医疗、金融等领域的智能化。大模型是千亿参数的深度神经网络&#xff08;如ChatGPT&…

Scratch 3.0安装包,支持Win7/10/11、Mac电脑手机平板、少儿便编程的启蒙软件。

Scratch是一款由麻省理工学院&#xff08;MIT&#xff09; 设计开发的少儿编程工具。其特点是&#xff1a;使用者可以不认识英文单词&#xff0c;也可以不使用键盘&#xff0c;就可以进行编程。构成程序的命令和参数通过积木形状的模块来实现。用鼠标拖动指令模块到脚本区就可以…

Deepseek学习--工具篇之Ollama

Deepseek学习--工具篇之Ollama 用途特点简化部署‌轻量级与可扩展性‌API支持‌预构建模型库‌模型导入与定制‌跨平台支持‌命令行工具与环境变量‌ 来源缘起诞生爆发持续 安装使用方法下载安装安装模型调用API 用途 我们在进行Deepseek本地部署的时候&#xff0c;通常会用到…

Flask多参数模版使用

需要建立目录templates&#xff1b; 把建好的html文件放到templates目录里面&#xff1b; 约定好参数名字&#xff0c;单个名字可以直接使用&#xff1b;多参数使用字典传递&#xff1b; 样例&#xff1a; from flask import render_template # 模板 (Templates) #Flask 使用…

LabVIEW旋转设备状态在线监测系统

为了提高大型旋转设备如电机和水泵的监控效率和故障诊断能力&#xff0c;用LabVIEW软件开发了一套实时监测与故障诊断系统。该系统集成了趋势分析、振动数据处理等多项功能&#xff0c;可实时分析电机电流、压力、温度及振动数据&#xff0c;以早期识别和预报故障。 ​ 项目背…

汽车PKE无钥匙进入系统一键启动系统定义与原理

汽车智能钥匙&#xff08;PKE无钥匙进入系统&#xff09;一键启动介绍 系统定义与原理 汽车无钥匙进入系统&#xff0c;简称PKE&#xff08;Passive Keyless Entry&#xff09;&#xff0c;该系统采用了RFID无线射频技术和车辆身份编码识别系统&#xff0c;率先应用小型化、小…

【Idea】 xml 文本粘贴保持原有文本的缩进格式

Idea xml 文本粘贴保持原有文本的缩进格式 在使用 IntelliJ IDEA 2018 版本中的 MyBatis 时&#xff0c;粘贴 SQL 语句会自动对齐&#xff0c;此时需要进行相关设置来禁用此功能。 setting——>Editor——>Code Style——>XML 勾选“Keep white spaces”

Unity 和 Python 的连接(通过SocketIO)附源码

在游戏或者项目开发中&#xff0c;Unity 通常用于创建前端&#xff0c;而 Python 则因其强大的数据处理能力常被用作后端。通过 Socket.IO&#xff0c;我们可以轻松地实现 Unity 和 Python 的实时通信。本文将介绍如何通过 Socket.IO 连接 Unity 和 Python&#xff0c;并附上完…

[IP]UART

UART 是一个简易串口ip&#xff0c;用户及配置接口简单。 波特率从9600至2000000。 该 IP 支持以下特性&#xff1a; 异步串行通信&#xff1a;标准 UART 协议&#xff08;1 起始位&#xff0c;8 数据位&#xff0c;1 停止位&#xff0c;无奇偶校验&#xff09;。 参数化配置…

vue2实现可拖拽菜单栏,及根据菜单内容自动扩展宽度

分为两个功能 基本的html: <el-scrollbarid"leftmenu"v-resize"MuneResize"wrap-class"scrollbar-wrapper"><el-menu:default-active"activeMenu":collapse"isCollapse":background-color"variables.menuBg&…