智慧加油站系统 - 数据库与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)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 用户ID |
username | varchar | 50 | 否 | 用户名 | ||
password | varchar | 255 | 否 | 密码(加密存储) | ||
real_name | varchar | 50 | 是 | 真实姓名 | ||
mobile | varchar | 20 | 是 | 手机号码 | ||
varchar | 100 | 是 | 电子邮箱 | |||
role_id | int | 11 | 否 | 角色ID | ||
avatar | varchar | 255 | 是 | 头像URL | ||
status | tinyint | 1 | 否 | 1 | 状态(1-正常,0-禁用) | |
last_login_time | datetime | 是 | 最后登录时间 | |||
last_login_ip | varchar | 50 | 是 | 最后登录IP | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
username
- 普通索引:
role_id
,mobile
会员表(members)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 会员ID |
user_id | int | 11 | 否 | 关联用户ID | ||
member_no | varchar | 30 | 否 | 会员卡号 | ||
level | tinyint | 1 | 否 | 1 | 会员等级(1-普通,2-银卡,3-金卡,4-钻石) | |
balance | decimal | (10,2) | 否 | 0.00 | 账户余额 | |
points | int | 11 | 否 | 0 | 积分 | |
join_time | datetime | 否 | CURRENT_TIMESTAMP | 加入时间 | ||
expire_time | datetime | 是 | 过期时间 | |||
status | tinyint | 1 | 否 | 1 | 状态(1-正常,0-冻结) | |
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
user_id
,member_no
- 普通索引:
level
角色表(roles)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 角色ID |
name | varchar | 50 | 否 | 角色名称 | ||
code | varchar | 50 | 否 | 角色编码 | ||
description | varchar | 255 | 是 | 角色描述 | ||
status | tinyint | 1 | 否 | 1 | 状态(1-启用,0-禁用) | |
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
code
权限表(permissions)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 权限ID |
name | varchar | 50 | 否 | 权限名称 | ||
code | varchar | 50 | 否 | 权限编码 | ||
description | varchar | 255 | 是 | 权限描述 | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
code
角色权限关联表(role_permissions)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 关联ID |
role_id | int | 11 | 否 | 角色ID | ||
permission_id | int | 11 | 否 | 权限ID | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 |
索引:
- 主键:
id
- 唯一索引:
role_id, permission_id
1.2.2 订单相关表
订单表(orders)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 订单ID |
order_no | varchar | 50 | 否 | 订单编号 | ||
member_id | int | 11 | 否 | 会员ID | ||
station_id | int | 11 | 否 | 加油站ID | ||
oil_id | int | 11 | 否 | 油品ID | ||
oil_gun_id | int | 11 | 否 | 油枪ID | ||
amount | decimal | (10,2) | 否 | 0.00 | 加油金额 | |
quantity | decimal | (10,2) | 否 | 0.00 | 加油升数 | |
unit_price | decimal | (10,2) | 否 | 0.00 | 单价 | |
discount_amount | decimal | (10,2) | 否 | 0.00 | 优惠金额 | |
payment_method | tinyint | 1 | 否 | 1 | 支付方式(1-余额,2-微信,3-支付宝,4-银行卡) | |
order_type | tinyint | 1 | 否 | 1 | 订单类型(1-加油,2-充值,3-商品) | |
status | tinyint | 1 | 否 | 0 | 状态(0-待支付,1-已支付,2-已完成,3-已取消,4-退款中,5-已退款) | |
remark | varchar | 255 | 是 | 备注 | ||
paid_time | datetime | 是 | 支付时间 | |||
refuel_start_time | datetime | 是 | 加油开始时间 | |||
refuel_end_time | datetime | 是 | 加油结束时间 | |||
transaction_id | varchar | 100 | 是 | 三方支付交易ID | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
order_no
- 普通索引:
member_id
,station_id
,oil_gun_id
,status
,created_at
支付记录表(payment_records)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 记录ID |
order_id | int | 11 | 否 | 订单ID | ||
transaction_no | varchar | 100 | 否 | 交易编号 | ||
member_id | int | 11 | 否 | 会员ID | ||
payment_method | tinyint | 1 | 否 | 支付方式(1-余额,2-微信,3-支付宝,4-银行卡) | ||
amount | decimal | (10,2) | 否 | 0.00 | 支付金额 | |
payment_time | datetime | 否 | CURRENT_TIMESTAMP | 支付时间 | ||
status | tinyint | 1 | 否 | 0 | 状态(0-处理中,1-成功,2-失败) | |
callback_data | text | 是 | 回调数据 | |||
external_payment_id | varchar | 100 | 是 | 外部支付系统ID | ||
refund_status | tinyint | 1 | 否 | 0 | 退款状态(0-无退款,1-部分退款,2-全额退款) | |
refund_amount | decimal | (10,2) | 否 | 0.00 | 退款金额 | |
refund_time | datetime | 是 | 退款时间 | |||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
transaction_no
,external_payment_id
- 普通索引:
order_id
,member_id
,payment_time
账户流水表(account_transactions)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 流水ID |
transaction_no | varchar | 50 | 否 | 流水号 | ||
member_id | int | 11 | 否 | 会员ID | ||
type | tinyint | 1 | 否 | 类型(1-充值,2-消费,3-退款,4-赠送) | ||
amount | decimal | (10,2) | 否 | 0.00 | 金额 | |
balance | decimal | (10,2) | 否 | 0.00 | 交易后余额 | |
order_id | int | 11 | 是 | 关联订单ID | ||
description | varchar | 255 | 是 | 交易描述 | ||
operator_id | int | 11 | 是 | 操作员ID | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
transaction_no
- 普通索引:
member_id
,type
,order_id
,created_at
1.2.3 油品相关表
油品表(oils)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 油品ID |
name | varchar | 50 | 否 | 油品名称 | ||
code | varchar | 20 | 否 | 油品编码 | ||
type | tinyint | 1 | 否 | 油品类型(1-汽油,2-柴油) | ||
standard | varchar | 20 | 否 | 油品标准(如92#,95#) | ||
color | varchar | 10 | 是 | 颜色表示(十六进制颜色码) | ||
status | tinyint | 1 | 否 | 1 | 状态(1-可用,0-不可用) | |
description | varchar | 255 | 是 | 描述 | ||
density | decimal | (10,4) | 是 | 密度(kg/L) | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
code
- 普通索引:
type
,standard
油品价格表(oil_prices)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 价格ID |
oil_id | int | 11 | 否 | 油品ID | ||
station_id | int | 11 | 否 | 加油站ID(0表示总部定价) | ||
price | decimal | (10,2) | 否 | 0.00 | 零售价格 | |
cost_price | decimal | (10,2) | 否 | 0.00 | 成本价格 | |
start_time | datetime | 否 | CURRENT_TIMESTAMP | 生效开始时间 | ||
end_time | datetime | 是 | 生效结束时间 | |||
status | tinyint | 1 | 否 | 1 | 状态(1-生效,0-历史) | |
creator_id | int | 11 | 否 | 创建人ID | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
oil_id, station_id, start_time
- 普通索引:
station_id
,status
,start_time
会员折扣表(member_discounts)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 折扣ID |
level | tinyint | 1 | 否 | 会员等级 | ||
oil_id | int | 11 | 否 | 油品ID(0表示所有油品) | ||
discount_type | tinyint | 1 | 否 | 1 | 折扣类型(1-折扣率,2-固定金额) | |
discount_value | decimal | (10,2) | 否 | 0.00 | 折扣值(折扣率为0-1之间小数) | |
start_time | datetime | 否 | CURRENT_TIMESTAMP | 生效开始时间 | ||
end_time | datetime | 是 | 生效结束时间 | |||
status | tinyint | 1 | 否 | 1 | 状态(1-生效,0-过期) | |
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 普通索引:
level
,oil_id
,status
,start_time
,end_time
1.2.4 站点相关表
加油站表(stations)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 站点ID |
name | varchar | 100 | 否 | 站点名称 | ||
code | varchar | 20 | 否 | 站点编码 | ||
address | varchar | 255 | 否 | 详细地址 | ||
province | varchar | 50 | 否 | 省份 | ||
city | varchar | 50 | 否 | 城市 | ||
district | varchar | 50 | 否 | 区县 | ||
longitude | decimal | (10,6) | 是 | 经度 | ||
latitude | decimal | (10,6) | 是 | 纬度 | ||
contact_person | varchar | 50 | 是 | 联系人 | ||
contact_phone | varchar | 20 | 是 | 联系电话 | ||
business_hours | varchar | 50 | 是 | 营业时间 | ||
status | tinyint | 1 | 否 | 1 | 站点状态(1-营业,0-停业,2-维护中) | |
is_self_service | tinyint | 1 | 否 | 0 | 是否自助(1-是,0-否) | |
manager_id | int | 11 | 是 | 站长用户ID | ||
open_date | date | 是 | 开业日期 | |||
description | text | 是 | 站点描述 | |||
image | varchar | 255 | 是 | 站点图片 | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
code
- 普通索引:
status
,province
,city
,is_self_service
油罐表(oil_tanks)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 油罐ID |
station_id | int | 11 | 否 | 加油站ID | ||
name | varchar | 50 | 否 | 油罐名称 | ||
code | varchar | 20 | 否 | 油罐编码 | ||
oil_id | int | 11 | 否 | 储存油品ID | ||
capacity | decimal | (10,2) | 否 | 0.00 | 容量(升) | |
current_volume | decimal | (10,2) | 否 | 0.00 | 当前体积(升) | |
warning_level | decimal | (10,2) | 否 | 0.00 | 警戒体积(升) | |
status | tinyint | 1 | 否 | 1 | 状态(1-正常,0-停用,2-维护中) | |
last_check_time | datetime | 是 | 最后检查时间 | |||
last_fill_time | datetime | 是 | 最后加注时间 | |||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
station_id, code
- 普通索引:
station_id
,oil_id
,status
油枪表(oil_guns)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 油枪ID |
station_id | int | 11 | 否 | 加油站ID | ||
oil_tank_id | int | 11 | 否 | 油罐ID | ||
number | varchar | 10 | 否 | 枪号 | ||
position | varchar | 50 | 是 | 位置描述 | ||
oil_id | int | 11 | 否 | 油品ID | ||
status | tinyint | 1 | 否 | 1 | 状态(1-可用,0-不可用,2-维护中) | |
device_id | varchar | 50 | 是 | 设备ID | ||
flow_meter_id | varchar | 50 | 是 | 流量计ID | ||
is_self_service | tinyint | 1 | 否 | 0 | 是否自助(1-是,0-否) | |
last_maintenance_time | datetime | 是 | 最后维护时间 | |||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
station_id, number
- 普通索引:
station_id
,oil_tank_id
,oil_id
,status
,is_self_service
1.2.5 排班管理相关表
班次定义表(shift_definitions)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 班次ID |
station_id | int | 11 | 否 | 加油站ID(0表示所有站点通用) | ||
name | varchar | 50 | 否 | 班次名称(如早班、中班、晚班) | ||
start_time | time | 否 | 开始时间 | |||
end_time | time | 否 | 结束时间 | |||
duration | decimal | (5,2) | 否 | 持续时长(小时) | ||
is_next_day | tinyint | 1 | 否 | 0 | 是否跨天(0-否,1-是) | |
min_staff | int | 4 | 否 | 1 | 最少人数 | |
status | tinyint | 1 | 否 | 1 | 状态(1-启用,0-禁用) | |
remark | varchar | 255 | 是 | 备注 | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 普通索引:
station_id
,status
排班计划表(shift_schedules)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 排班ID |
station_id | int | 11 | 否 | 加油站ID | ||
user_id | int | 11 | 否 | 员工用户ID | ||
shift_id | int | 11 | 否 | 班次ID | ||
schedule_date | date | 否 | 排班日期 | |||
schedule_type | tinyint | 1 | 否 | 1 | 排班类型(1-正常,2-加班,3-调休) | |
status | tinyint | 1 | 否 | 1 | 状态(1-正常,2-已替换,3-已取消) | |
replaced_by | int | 11 | 是 | 替班人ID | ||
create_user_id | int | 11 | 否 | 创建人ID | ||
remark | varchar | 255 | 是 | 备注 | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
station_id, user_id, schedule_date, shift_id
- 普通索引:
user_id
,schedule_date
,status
,shift_id
考勤记录表(attendance_records)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 考勤ID |
station_id | int | 11 | 否 | 加油站ID | ||
user_id | int | 11 | 否 | 员工用户ID | ||
shift_schedule_id | int | 11 | 是 | 关联排班ID | ||
attendance_date | date | 否 | 考勤日期 | |||
check_in_time | datetime | 是 | 签到时间 | |||
check_out_time | datetime | 是 | 签退时间 | |||
check_in_location | varchar | 100 | 是 | 签到位置 | ||
check_out_location | varchar | 100 | 是 | 签退位置 | ||
check_in_photo | varchar | 255 | 是 | 签到照片URL | ||
check_out_photo | varchar | 255 | 是 | 签退照片URL | ||
status | tinyint | 1 | 否 | 0 | 状态(0-未签到,1-已签到未签退,2-已签退,3-迟到,4-早退,5-旷工,6-请假) | |
work_hours | decimal | (5,2) | 是 | 工作时长(小时) | ||
verify_user_id | int | 11 | 是 | 审核人ID | ||
verify_time | datetime | 是 | 审核时间 | |||
remark | varchar | 255 | 是 | 备注 | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 普通索引:
station_id
,user_id
,attendance_date
,status
,shift_schedule_id
休假申请表(leave_applications)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 申请ID |
station_id | int | 11 | 否 | 加油站ID | ||
user_id | int | 11 | 否 | 申请人ID | ||
leave_type | tinyint | 1 | 否 | 休假类型(1-事假,2-病假,3-年假,4-调休,5-其他) | ||
start_time | datetime | 否 | 开始时间 | |||
end_time | datetime | 否 | 结束时间 | |||
duration | decimal | (5,2) | 否 | 时长(天) | ||
reason | varchar | 255 | 否 | 请假原因 | ||
attachment | varchar | 255 | 是 | 附件URL | ||
status | tinyint | 1 | 否 | 0 | 状态(0-待审核,1-已批准,2-已拒绝,3-已取消) | |
approver_id | int | 11 | 是 | 审批人ID | ||
approve_time | datetime | 是 | 审批时间 | |||
approve_comment | varchar | 255 | 是 | 审批意见 | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 普通索引:
station_id
,user_id
,status
,start_time
,end_time
换班申请表(shift_change_requests)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 申请ID |
station_id | int | 11 | 否 | 加油站ID | ||
requester_id | int | 11 | 否 | 申请人ID | ||
original_schedule_id | int | 11 | 否 | 原排班ID | ||
replacement_user_id | int | 11 | 否 | 替班人ID | ||
replacement_shift_id | int | 11 | 是 | 替班班次ID(为空表示使用原班次) | ||
request_reason | varchar | 255 | 是 | 申请原因 | ||
status | tinyint | 1 | 否 | 0 | 状态(0-待确认,1-已确认,2-已拒绝,3-已取消) | |
confirm_time | datetime | 是 | 确认时间 | |||
approve_user_id | int | 11 | 是 | 管理员审批人ID | ||
approve_time | datetime | 是 | 管理员审批时间 | |||
approve_status | tinyint | 1 | 是 | 审批状态(0-待审批,1-已通过,2-已拒绝) | ||
remark | varchar | 255 | 是 | 备注 | ||
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 普通索引:
station_id
,requester_id
,replacement_user_id
,original_schedule_id
,status
班组管理表(work_teams)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 班组ID |
station_id | int | 11 | 否 | 加油站ID | ||
name | varchar | 50 | 否 | 班组名称 | ||
leader_id | int | 11 | 是 | 班组长ID | ||
description | varchar | 255 | 是 | 描述 | ||
status | tinyint | 1 | 否 | 1 | 状态(1-启用,0-禁用) | |
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 普通索引:
station_id
,leader_id
,status
班组成员表(team_members)
字段名 | 类型 | 长度 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 是 | 自增 | 记录ID |
team_id | int | 11 | 否 | 班组ID | ||
user_id | int | 11 | 否 | 成员用户ID | ||
join_time | datetime | 否 | CURRENT_TIMESTAMP | 加入时间 | ||
position | varchar | 50 | 是 | 职位 | ||
is_leader | tinyint | 1 | 否 | 0 | 是否班组长(1-是,0-否) | |
status | tinyint | 1 | 否 | 1 | 状态(1-在职,0-离职) | |
created_at | datetime | 否 | CURRENT_TIMESTAMP | 创建时间 | ||
updated_at | datetime | 否 | CURRENT_TIMESTAMP | 更新时间 |
索引:
- 主键:
id
- 唯一索引:
team_id, user_id
- 普通索引:
user_id
,status
,is_leader