数据库设计文档
项目名称: 麦瓣健康康护到家平台 - 数据库设计方案 数据库类型: MySQL 8.0 + MongoDB 5.0 设计模式: 关系型数据库 + 文档型数据库 + JSON字段 表数量: 181张表 (MySQL 180张 + MongoDB 1张) 最后更新: 2025-11-19
设计说明: 本文档基于280个功能点需求(用户端165+技师端88+后台52),设计了181张数据表,按24个业务领域划分(用户、技师、支付、健康、营销、活动、消息、商城、服务配置、内容社区、拼团、激励成就、CRM、营销管理、培训、调查、页面装修、投诉申诉、帮助文档、权限管理、安全记录、系统配置、运营管理、分布式事务),全面支撑9个微服务架构。权限管理体系v2.0支持多租户数据隔离、RBAC权限模型、操作审计等核心功能。技师端新增7张核心账户系统表(实名认证、服务类别、营业执照、健康证明、归属关系、商户信息、团队信息),确保准入机制和归属管理的完整性。
一、数据库架构概览
1.1 技术栈
| 技术组件 | 版本/方案 | 用途说明 |
|---|---|---|
| 数据库 | MySQL 8.0 | 主数据库,支持JSON字段类型 |
| 连接池 | HikariCP | Spring Boot 3默认连接池 |
| ORM框架 | MyBatis Plus | 对象关系映射,简化CRUD |
| 缓存层 | Redis 7.x | 热点数据缓存,减轻数据库压力 |
| NoSQL | MongoDB 5.0 | 护理日志照片等非结构化数据 |
| 主从架构 | MySQL Master-Slave | 读写分离,提升性能 |
| 对象存储 | 阿里云OSS | 图片、证书文件存储 |
1.2 数据库部署架构
主从复制架构:
- 主库(Master): 处理所有写操作(INSERT、UPDATE、DELETE)
- 从库(Slave): 处理所有读操作(SELECT)
- 主从延迟: <1秒,binlog异步复制
- 故障切换: 从库自动提升为主库
服务架构演进策略:
- V1.0阶段:
- 采用直接数据库查询方式,简化架构复杂度
- 订单服务通过数据库表关联查询用户、技师数据
- 减少跨服务依赖,加速开发和上线
- V2.0阶段:
- 引入微服务架构,maiban-order独立部署
- 通过HTTP/gRPC调用maiban-nurse、maiban-user等微服务
- 使用RabbitMQ实现与maiban-nurse的异步通信
- 采用Outbox模式保证分布式事务一致性
- 实现服务解耦和独立扩展
分库分表策略(未来扩展):
- 订单表不分区(当前阶段不需要)
- 护理日志表按用户ID分表
- 支持水平扩展至多个数据库实例
1.3 数据安全策略
| 安全措施 | 实施方案 | 覆盖范围 |
|---|---|---|
| 字段加密 | AES-256加密 | 身份证号、银行卡号、健康档案敏感字段 |
| 传输加密 | HTTPS + TLS 1.3 | 所有客户端与服务端通信 |
| 访问控制 | 数据库用户权限分离 | 应用账号、备份账号、只读账号 |
| 审计日志 | MySQL Binlog + 应用日志 | 所有增删改操作记录 |
| 备份策略 | 全量备份(每天) + 增量备份(每小时) | 7天内数据可恢复 |
| 数据脱敏 | 查询时动态脱敏 | 手机号、身份证号显示时星号处理 |
二、核心数据表设计(148张)
表结构说明
- 本文档采用简洁设计原则,使用表格列出表名+关键字段
- 敏感字段统一采用AES-256加密存储
- 所有表默认包含
id(主键)、created_at、updated_at字段
2.1 用户体系(18张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 1 | 用户表(会员) | ums_member | username, password, nickname, phone, icon(头像), gender, birthday, city, job, personalized_signature, source_type, integration(积分), growth(成长值), luckey_count, history_integration, status(1正常/2冻结/3注销), wechat_openid, wechat_unionid, real_name, id_card(AES-256加密), id_card_front, id_card_back, id_card_expire_date(身份证有效期), real_name_status(0未认证/1认证中/2已通过/3未通过), real_name_fail_reason(认证失败原因), auth_time(认证通过时间), deleted_at(软删除) | 用户基本信息、微信授权、实名认证,支持账号注销软删除 |
| 2 | 会员等级表 | ums_member_level | name, growth_point(所需成长值), default_status, free_freight_point(免运费标准), comment_growth_point, priviledge_free_freight, priviledge_sign_in, priviledge_comment, priviledge_promotion, priviledge_member_price, priviledge_birthday, note | 会员等级配置 |
| 3 | 用户地址表 | ums_member_receive_address | member_id, name, phone_number, default_status, post_code, province, city, region, detail_address | 服务地址/收货地址管理 |
| 4 | 用户标签表 | ums_member_tag | name | 用户标签 |
| 5 | 用户标签关系表 | ums_member_member_tag_relation | member_id, tag_id | 用户与标签多对多关系 |
| 6 | 用户统计信息表 | ums_member_statistics_info | member_id, consume_amount(累计消费), order_count, coupon_count, comment_count, return_order_count, login_count, attend_count, fans_count, collect_product_count, collect_subject_count, collect_topic_count, collect_comment_count, invite_friend_count, recent_order_time | 用户统计数据 |
| 7 | 会员任务表 | ums_member_task | name, growth, integration(奖励积分), type(新手/日常/每周) | 任务配置 |
| 8 | 用户登录日志表 | ums_member_login_log | member_id, create_time, ip, city, province, login_type(1手机号/2微信), device_id, device_name, device_model(设备型号), device_system(iOS/Android) | 登录历史记录,用于安全审计和异常登录检测 |
| 9 | 家庭成员表 | mbn_family_members | user_id, name, relationship(父母/配偶/子女/本人), age, gender, phone, id_card(加密), is_default, medical_insurance_no(医保卡号), emergency_contact_name, emergency_contact_phone | 被护理人信息管理 |
| 10 | 用户收藏表 | mbn_user_favorites | user_id, nurse_id, created_at | 收藏技师 |
| 11 | 浏览历史表 | mbn_user_browse_history | user_id, browse_type(技师/商品/文章), target_id, browse_time, browse_duration(浏览时长), source_page(来源页面) | 浏览记录 |
| 12 | 邀请记录表 | mbn_user_invites | inviter_id(邀请人), invitee_id(被邀请人), invite_code, invite_type(用户邀请/技师邀请), status(已注册/已认证/已下单), reward_amount | 老带新功能 |
| 13 | 用户搜索记录表 | mbn_user_search_history | user_id, keyword, search_type(技师/商品), search_time | 搜索历史 |
| 14 | 用户家庭绑定表 | mbn_user_family_bindings | child_user_id(子女ID), parent_user_id(父母ID), relationship(父亲/母亲), bind_status(待确认/已绑定/已解绑), can_view_orders, can_place_orders, can_pay | 子女远程协助父母功能 |
| 15 | 用户偏好设置表 | mbn_user_preferences | user_id, theme_color, dark_mode, font_size(标准/大/超大), simple_mode(简化模式), voice_speed(语音播报速度), language, notification_sound, vibrate | 用户个性化偏好设置 |
| 16 | 用户引导进度表 | mbn_user_onboarding_progress | user_id, step_id, completed(是否完成), completed_time, skipped(是否跳过) | 新手引导完成记录 |
| 17 | 数据导出记录表 | mbn_data_export_records | user_id, export_type(个人信息/订单/健康档案/聊天记录/全部), export_format(PDF/Excel/JSON), export_status, file_url, expire_time | 用户数据导出记录 |
| 18 | 账号注销记录表 | mbn_account_cancel_records | user_id, phone, cancel_reason(JSON格式), cancel_feedback(详细反馈), cancel_time, execute_time(正式注销时间), cooldown_days(冷静期天数默认30), status(1申请中/2已撤销/3已注销), operator_id, operator_note(操作备注), created_at, updated_at | 账号注销记录,支持30天冷静期撤销机制 |
2.2 技师体系(22张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 11 | 护理师表 | nurses | phone, nickname, avatar, gender, real_name, id_card(加密), id_card_front, id_card_back, id_card_expire_date, face_image, face_similarity, business_license, business_license_type, health_cert, health_cert_expire_date, criminal_record_cert, specialties(JSON), service_range(KM), lat, lng, status(正常/冻结/注销), level(初级/中级/高级/金牌), rating, order_count, experience_years, is_accepting_order(是否接单), max_concurrent_orders(最大并发), current_order_count, created_at, updated_at | 技师核心信息(含基础实名认证字段) |
| 12 | 技师实名认证表 | mbn_nurse_real_name_auth | nurse_id, real_name, id_card_no(加密), id_card_front, id_card_back, id_card_expire_date, birth_date, age, face_image, face_similarity, verify_channel(Face++/腾讯云), auth_status(未认证/认证中/已通过/未通过), auth_fail_reason, auth_time, auditor_id, retry_count, created_at, updated_at | 技师实名认证详细记录(独立审核流程) |
| 13 | 技师证书表 | nurse_certificates | nurse_id, cert_type(护士证/康复师证/育婴师证/按摩师证/其他), cert_no, cert_photo_url, cert_back_photo_url, cert_level(初级/中级/高级/技师), issue_org, issue_date, expire_date, verify_status(待审核/已通过/已过期/未通过), verify_fail_reason, verify_channel(卫健委/人社部), auditor_id, audit_time, created_at, updated_at | 资质证书管理 |
| 14 | 技师服务类别表 | mbn_nurse_service_categories | nurse_id, category_type(1专业严选/2健康管理/3功能型/4差旅放松/5肩颈快按), auth_status(待审核/已通过/未通过), auth_fail_reason, is_enabled(是否开启接单), business_hours_start, business_hours_end, offline_exam_status(线下考核状态), training_status(培训状态), auditor_id, audit_time, created_at, updated_at | 技师服务类别准入与审核 |
| 15 | 营业执照/灵活就业表 | mbn_nurse_business_licenses | nurse_id, license_type(营业执照/灵活就业), license_photo, license_no(统一社会信用代码), business_name, legal_person, business_scope, issue_date, expire_date, verify_status(待审核/已通过/未通过), verify_fail_reason, annual_inspection_status, auditor_id, audit_time, created_at, updated_at | 营业执照或灵活就业证明管理 |
| 16 | 健康证明表 | mbn_nurse_health_certificates | nurse_id, cert_type(健康证/无犯罪记录), cert_photo, cert_no, issue_org, issue_date, expire_date, check_items(JSON体检项目), check_result(合格/不合格), verify_status(待审核/已通过/未通过), verify_fail_reason, auditor_id, audit_time, created_at, updated_at | 健康证和无犯罪记录证明管理 |
| 17 | 师徒关系表 | nurse_mentor_relations | mentor_id(师傅ID), apprentice_id(徒弟ID), commission_rate(提成比例), total_commission(累计提成), relation_start_time, status(有效/已解除) | 师徒体系 |
| 18 | 技师评价表 | nurse_reviews | nurse_id, order_id, user_id, rating, tags(JSON:服务态度/专业技能/准时到达), content, photos(JSON), nurse_reply, created_at | 技师评价管理 |
| 19 | 技师服务范围表 | nurse_service_ranges | nurse_id, province, city, districts(JSON:可服务区县), max_distance(最大服务距离KM) | 服务范围配置 |
| 20 | 技师统计表 | nurse_statistics | nurse_id, total_orders, total_income, total_service_hours, accept_rate(接单率), complete_rate(完单率), positive_rate(好评率), cancel_count, month_orders, month_income | 业绩统计数据 |
| 21 | 护理师在线日志表 | nurse_online_logs | nurse_id, online_time(上线时间), offline_time(下线时间), duration(在线时长分钟), device_type, app_version | 护理师在线状态日志,用于统计在线时长 |
| 22 | 订单推送日志表 | order_push_logs | order_id, nurse_id, push_time, response_time, response_type(已接单/已拒绝/超时/忽略), reject_reason, distance(护理师距离KM), recommend_score(推荐得分) | 订单推送历史记录,优化分配算法 |
| 23 | 拒单原因预设表 | nurse_reject_reasons | reason_text(原因文本), reason_code(原因代码), reason_category(距离/时间/技能/个人/其他), is_active, sort_order | 拒单原因配置与统计 |
| 24 | 护理师提现账户表 | nurse_withdraw_accounts | nurse_id, account_type(微信/支付宝/银行卡), account_name, account_number(加密), bank_name, bank_branch, is_default, status, verified | 护理师多个提现账户管理 |
| 25 | 护理师签到记录表 | nurse_sign_records | nurse_id, sign_date, continuous_days(连续签到天数), reward_amount(奖励金额), reward_points(奖励积分) | 护理师每日签到打卡记录 |
| 26 | 护理师任务表 | nurse_tasks | nurse_id, task_id, task_name, task_type(日常/周/月/新手), progress(当前进度), target(目标进度), reward_type(奖金/积分/优惠券), reward_value, status(进行中/已完成/已领取/已过期) | 护理师任务中心 |
| 27 | 护理师月度挑战进度表 | nurse_monthly_challenge_progress | nurse_id, challenge_id, month(月份YYYYMM), progress_value(当前进度), target_value(目标值), is_completed, reward_amount, reward_issued | 月度挑战参与与进度 |
| 28 | 护理师奖励记录表 | nurse_reward_records | nurse_id, reward_type(完单/好评/签到/任务/挑战/排名/邀请), reward_source_id(来源ID), reward_amount, reward_points, reward_reason, reward_time, balance_after(操作后余额), status | 护理师所有奖励统一流水 |
| 29 | 师徒提成记录表 | mentor_commission_records | mentor_id(师傅ID), apprentice_id(徒弟ID), order_id, order_amount, commission_rate(提成比例%), commission_amount(提成金额), relation_months(师徒关系月数), commission_time, status | 师徒提成明细记录 |
| 30 | 技师归属关系表 | mbn_nurse_affiliation | nurse_id, affiliation_type(1平台技师/2商户技师/3团队技师), merchant_id, team_id, apply_type(主动申请/邀请码/邀请), invite_code, apply_reason, status(申请中/已归属/已拒绝/已解除), audit_time, auditor_id, audit_opinion, join_time, leave_time, leave_reason, cooldown_end_time(冷静期结束时间), commission_rate(佣金比例), created_at, updated_at | 技师归属类型管理(平台/商户/团队)【v2.0新增】 |
| 31 | 商户信息表 | mbn_merchants | merchant_name, merchant_type(养生馆/美容院/产后康复中心/母婴护理中心/其他), business_license, license_no(统一社会信用代码), legal_person, contact_phone, province, city, district, address, store_photos(JSON), service_categories(JSON), nurse_count(技师人数), rating, commission_rate(技师佣金比例), is_public_rate(是否公开佣金), recruit_status(已满员/招募中), status(待审核/正常/冻结/注销), audit_time, auditor_id, created_at, updated_at | 商户信息管理【v2.0新增】 |
| 32 | 团队信息表 | mbn_nurse_teams | team_name, team_type(独立技师团队/技师工作室/师徒团队), team_leader_id(团队长ID), team_intro, province, city, service_categories(JSON), member_count(成员人数), max_member_count(最大成员数), rating, commission_rate(接单技师佣金比例), leader_management_fee(团队长管理费比例), is_public_rate(是否公开佣金), recruit_status(已满员/招募中), status(待审核/正常/冻结/解散), audit_time, auditor_id, created_at, updated_at | 团队信息管理【v2.0新增】 |
2.4 支付财务体系(5张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 44 | 支付流水表 | mbn_payment_records | trade_no, order_id, package_id, user_id, payment_method(微信/支付宝/余额), amount, status(待支付/已支付/已退款), pay_time, refund_time, third_party_trade_no, payment_channel(wx_h5/wx_app), discount_amount, coupon_ids(JSON), red_packet_ids(JSON) | 支付流水 |
| 45 | 退款记录表 | mbn_refund_records | order_id, user_id, refund_amount, refund_reason, refund_type(用户取消/服务异常/平台责任), apply_time, audit_time, refund_time, status(待审核/已同意/已退款/已拒绝), operator_id | 退款管理(补充oms_order_return_apply) |
| 46 | 提现记录表 | mbn_withdraw_records | nurse_id, amount, account_type(银行卡/支付宝), account_name, account_number(加密), status(待审核/审核通过/已打款/已拒绝), apply_time, audit_time, transfer_time, reject_reason, operator_id, fee_amount(手续费), actual_amount | 技师提现 |
| 47 | 分账记录表 | mbn_settlement_records | order_id(唯一), total_amount, platform_fee(平台佣金), nurse_fee(技师收入), commission_rate(佣金比例), settle_time | 订单分账 |
| 48 | 发票表 | mbn_invoices | user_id, order_ids(JSON:合并开票), invoice_type(个人/企业), invoice_title, tax_no(纳税人识别号), invoice_amount, invoice_content, pdf_url, email, status(待开具/已开具/已邮寄) | 电子发票 |
2.5 健康管理体系(12张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 42 | 健康档案表 | health_records | user_id, patient_name, patient_age, patient_gender, medical_history(JSON,加密), allergies(JSON,加密), medications(JSON,加密), vital_signs(JSON:血压心率血糖体温历史), health_risk_level(低/中/高/危急), ai_suggestions | 健康档案 |
| 43 | 护理日志表 | nursing_logs | order_id, nurse_id, patient_id, service_content, vital_signs(JSON:本次体征), photos(JSON), remarks | 护理记录 |
| 44 | 体检报告表 | health_reports | user_id, patient_id, report_title, report_date, report_images(JSON), report_data(JSON:OCR识别), ai_analysis(JSON:AI分析), risk_level(低/中/高), suggestions(TEXT), pdf_url, pdf_generated_at | 体检报告AI分析 |
| 45 | 健康计划表 | health_plans | user_id, patient_id, plan_name, plan_type(用药/饮食/运动), plan_content(JSON), start_date, end_date, remind_time, status(进行中/已完成/已取消) | 健康计划 |
| 46 | 物联网设备表 | iot_devices | user_id, device_type(手环/手表/血压计/血糖仪/血氧仪), device_brand, device_model, device_id, bind_time, last_sync_time, sync_status(正常/离线/异常), device_sn(序列号), firmware_version, battery_level | IoT设备集成 |
| 47 | 症状记录表 | symptom_records | user_id, patient_id, body_part(头/颈/肩/腰/腿等), symptom_type(疼痛/麻木/肿胀), severity(1-10分), duration(持续时间), description | 身体对应点症状记录 |
| 48 | AI推荐记录表 | ai_recommendations | user_id, recommend_type(护理师/服务项目/营养方案/商品), recommend_reason_data(JSON), recommend_items(JSON), click_count, order_count, click_rate, conversion_rate | AI推荐记录与效果分析 |
| 49 | 营养方案表 | nutrition_plans | plan_name, target_group(高血压/糖尿病/孕妇/老年人), diet_suggestions(JSON), nutrition_supplements(JSON), meal_plan(JSON), creator_type(AI/营养师), status | 营养方案配置 |
| 50 | 设备预警记录表 | device_alert_records | user_id, device_id, alert_type(心率异常/血压异常/血糖异常/久坐), alert_level(低/中/高/危急), alert_value, normal_range, is_handled | IoT设备异常预警记录 |
| 51 | 通用点赞表 | likes | user_id, target_type(护理师/评价/文章/帖子/问答), target_id, created_at | 通用点赞功能 |
| 52 | 健康计划步骤表 | health_plan_steps | plan_id, step_order(步骤顺序), step_name, step_description, step_type(日常/周/月), target_value(目标值), current_value(当前值), is_completed, completed_time | 健康计划详细步骤与打卡 |
| 53 | IoT设备品牌型号表 | iot_device_brands | brand_name, device_type, model_name, model_code, api_type(蓝牙/WiFi/云端), api_endpoint, sdk_version, is_supported, sort_order | 支持的IoT设备品牌型号库 |
2.6 营销体系(26张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 49 | 优惠券模板表 | sms_coupon | type, name, platform, count, amount, per_limit, min_point, start_time, end_time, use_type, note, publish_count, use_count, receive_count, enable_time, code, member_level | 优惠券配置 |
| 50 | 用户优惠券表 | sms_coupon_history | coupon_id, member_id, coupon_code, member_nickname, get_type, create_time, use_status, use_time, order_id, order_sn | 用户优惠券领取使用记录 |
| 51 | 优惠券商品分类关系表 | sms_coupon_product_category_relation | coupon_id, product_category_id, product_category_name, parent_category_name | 优惠券适用商品分类 |
| 52 | 优惠券商品关系表 | sms_coupon_product_relation | coupon_id, product_id, product_name, product_sn | 优惠券适用商品 |
| 53 | 限时购活动表 | sms_flash_promotion | title, start_date, end_date, status, create_time | 限时购/秒杀活动 |
| 54 | 限时购场次表 | sms_flash_promotion_session | name, start_time, end_time, status, create_time | 限时购场次配置 |
| 55 | 限时购商品关系表 | sms_flash_promotion_product_relation | flash_promotion_id, flash_promotion_session_id, product_id, flash_promotion_price, flash_promotion_count, flash_promotion_limit, sort | 限时购商品配置 |
| 56 | 限时购日志表 | sms_flash_promotion_log | member_id, product_id, member_phone, product_name, subscribe_time, send_time | 限时购通知日志 |
| 57 | 首页广告表 | sms_home_advertise | name, type, pic, start_time, end_time, status, click_count, order_count, url, note, sort | Banner/广告位 |
| 58 | 首页品牌推荐表 | sms_home_brand | brand_id, brand_name, recommend_status, sort | 首页推荐品牌 |
| 59 | 首页新品推荐表 | sms_home_new_product | product_id, product_name, recommend_status, sort | 首页新品推荐 |
| 60 | 首页推荐商品表 | sms_home_recommend_product | product_id, product_name, recommend_status, sort | 首页推荐商品 |
| 61 | 首页推荐专题表 | sms_home_recommend_subject | subject_id, subject_name, recommend_status, sort | 首页推荐专题 |
| 62 | 积分变更历史表 | ums_integration_change_history | member_id, create_time, change_type, change_count, operate_man, operate_note, source_type | 积分流水 |
| 63 | 积分消费设置表 | ums_integration_consume_setting | deduction_per_amount, max_percent_per_order, use_unit, coupon_status | 积分使用规则 |
| 64 | 成长值变更历史表 | ums_growth_change_history | member_id, create_time, change_type, change_count, operate_man, operate_note, source_type | 成长值流水 |
| 65 | 会员规则设置表 | ums_member_rule_setting | continue_sign_day, continue_sign_point, consume_per_point, low_order_amount, max_point_per_order, type | 会员积分规则 |
| 66 | 积分账户表 | mbn_user_points | user_id, total_points(累计积分), available_points(可用积分), frozen_points(冻结积分), expire_points(即将过期) | 积分余额汇总 |
| 67 | 积分升级规则表 | mbn_point_upgrade_rules | rule_name, required_points(所需积分), target_type(服务项目/套餐/权限), target_id, privilege_code, upgrade_benefit, status | 积分升级配置 |
| 68 | 红包表 | mbn_red_packets | name, red_packet_type(现金红包/随机红包/口令红包), total_amount, total_count, received_count, used_count, min_amount, max_amount, password(口令), rule(JSON:使用规则), start_time, end_time, status(进行中/已结束), best_luck_user_id | 红包配置 |
| 69 | 用户红包表 | mbn_user_red_packets | user_id, red_packet_id, amount, receive_time, use_time, expire_time, status(未使用/已使用/已过期), order_id | 用户红包 |
| 70 | 活动表 | mbn_activities | activity_name, activity_type(秒杀/拼团/满减/签到/任务), banner_url, rule(JSON:活动规则), target_type(服务/商品/套餐), target_ids(JSON), start_time, end_time, status(未开始/进行中/已结束), view_count, participate_count, order_count, gmv | 运营活动配置 |
| 71 | 用户签到记录表 | mbn_user_sign_records | user_id, sign_date, continuous_days(连续天数), reward_points, reward_coupon_id | 签到打卡 |
| 72 | 拼团活动表 | mbn_group_buy_activities | title, target_type(服务/商品/套餐), target_id, required_count(成团人数2/3/5), original_price, group_price, time_limit(拼团时限24小时), start_time, end_time, stock, sold_count, status(未开始/进行中/已结束) | 拼团活动配置 |
| 73 | 拼团参与表 | mbn_group_buy_participants | activity_id, group_id(拼团组ID), user_id, is_leader(是否团长), order_id, join_time, group_status(拼团中/已成团/已失败), refund_status | 拼团参与记录 |
| 74 | 会员产品分类关系表 | ums_member_product_category_relation | member_id, product_category_id | 会员关注的商品分类 |
2.7 活动任务体系(已合并到营销体系)
本节内容已合并到2.6营销体系,包括:
- 活动表 (mbn_activities)
- 用户任务表 (ums_member_task)
- 签到记录表 (mbn_user_sign_records)
- 拼团活动表 (mbn_group_buy_activities)
- 拼团参与表 (mbn_group_buy_participants)
2.8 消息通知体系(3张表 - 1张MongoDB)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 65 | IM消息表 | im_messages | _id, from_user_id, to_user_id, message_type(文字/图片/语音/位置/订单卡片), content, media_url, is_read, read_time, created_at, expire_at(30天后删除), voice_duration(语音时长), is_recalled(是否撤回) | MongoDB存储,即时通讯 |
| 66 | 通知表 | notifications | user_id(接收人), notify_type(订单/系统/活动/健康/设备), title, content, related_type(order/activity/report), related_id, is_read, read_time, priority(优先级), push_channels(JSON) | 通知中心 |
| 67 | 推送记录表 | push_records | user_id, push_type(极光推送/模板消息/短信), title, content, push_time, push_status(成功/失败), fail_reason, device_token | 推送日志 |
2.9 商城体系(25张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 75 | 商品表 | pms_product | name, pic, product_sn, brand_id, product_category_id, feight_template_id, product_attribute_category_id, delete_status, publish_status, new_status, recommand_status, verify_status, sort, sale, price, promotion_price, gift_growth, gift_point, use_point_limit, sub_title, original_price, stock, low_stock, unit, weight, preview_status, service_ids, keywords, note, album_pics, detail_title, promotion_start_time, promotion_end_time, promotion_per_limit, promotion_type, brand_name, product_category_name, description | 商品管理 |
| 76 | 商品分类表 | pms_product_category | parent_id, name, level, product_count, product_unit, nav_status, show_status, sort, icon, keywords, description | 商品分类 |
| 77 | 商品属性分类表 | pms_product_attribute_category | name, attribute_count, param_count | 商品类型(属性分组) |
| 78 | 商品属性表 | pms_product_attribute | product_attribute_category_id, name, select_type, input_type, input_list, sort, filter_type, search_type, related_status, hand_add_status, type | 商品属性/规格 |
| 79 | 商品属性值表 | pms_product_attribute_value | product_id, product_attribute_id, value | 商品属性值 |
| 80 | 商品分类属性关系表 | pms_product_category_attribute_relation | product_category_id, product_attribute_id | 分类与属性关系 |
| 81 | 品牌表 | pms_brand | name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, logo, big_pic, brand_story | 品牌管理 |
| 82 | 商品评论表 | pms_comment | product_id, member_nick_name, product_name, star, member_ip, create_time, show_status, product_attribute, collect_count, read_count, content, pics, member_icon, replay_count | 商品评价 |
| 83 | 商品评论回复表 | pms_comment_replay | comment_id, member_nick_name, member_icon, content, create_time, type | 评论回复 |
| 84 | SKU库存表 | pms_sku_stock | product_id, sku_code, price, stock, low_stock, pic, sale, promotion_price, lock_stock, sp_data | SKU管理 |
| 85 | 会员价格表 | pms_member_price | product_id, member_level_id, member_price, member_level_name | 会员价格 |
| 86 | 商品阶梯价格表 | pms_product_ladder | product_id, count, discount, price | 阶梯价格 |
| 87 | 商品满减表 | pms_product_full_reduction | product_id, full_price, reduce_price | 满减优惠 |
| 88 | 商品审核记录表 | pms_product_vertify_record | product_id, create_time, vertify_man, status, detail | 商品审核历史 |
| 89 | 商品操作日志表 | pms_product_operate_log | product_id, price_old, price_new, sale_price_old, sale_price_new, gift_point_old, gift_point_new, use_point_limit_old, use_point_limit_new, operate_man, create_time | 商品变更日志 |
| 90 | 运费模板表 | pms_feight_template | name, charge_type, first_weight, first_fee, continue_weight, continue_fee, dest | 运费模板 |
| 91 | 相册表 | pms_album | name, cover_pic, pic_count, sort, description | 图片相册 |
| 92 | 相册图片表 | pms_album_pic | album_id, pic | 相册图片 |
| 93 | 购物车表(已在订单体系) | oms_cart_item | product_id, product_sku_id, member_id, quantity, price, product_pic, product_name, product_sub_title, product_sku_code, member_nickname, create_date, modify_date, delete_status, product_category_id, product_brand, product_sn, product_attr | 购物车 |
| 94 | 商城订单表(已在订单体系) | oms_order | order_sn, member_id, total_amount, pay_amount, freight_amount, promotion_amount, coupon_amount, discount_amount, pay_type, status, order_type, delivery_company, delivery_sn, receiver_name, receiver_phone, receiver_province, receiver_city, receiver_region, receiver_detail_address | 商品订单 |
| 95 | 商品订单详情表(已在订单体系) | oms_order_item | order_id, order_sn, product_id, product_name, product_pic, product_price, product_quantity, product_sku_code | 订单明细 |
| 96 | 物流表 | mbn_logistics | order_id, logistics_company, logistics_no, logistics_status(待发货/已揽件/运输中/派送中/已签收), current_city, trace_info(JSON:物流轨迹), delivered_time | 物流跟踪 |
| 97 | 服务项目表 | mbn_service_items | name, category_id, service_type(老年康复/孕产护理/慢病管理/术后康复), price, duration(时长分钟), description, features(JSON:功效特点), target_group(适宜人群), precautions(注意事项), status(上架/下架) | 服务项目配置 |
| 98 | 服务分类表 | mbn_service_categories | name, parent_id, level(1/2级), icon, description, sort_order | 服务分类 |
| 99 | 系统配置表 | mbn_system_configs | config_key(待支付超时/待接单超时等), config_value, config_type(订单/支付/推送/地图), description | 系统参数配置 |
2.10 服务配置体系(已合并到商城体系)
本节内容已合并到2.9商城体系,包括:
- 服务项目表 (mbn_service_items)
- 服务分类表 (mbn_service_categories)
- Banner表/首页广告表 (sms_home_advertise)
- 系统配置表 (mbn_system_configs)
2.11 内容社区体系(16张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 100 | 专题表 | cms_subject | category_id, title, pic, product_count, recommend_status, create_time, collect_count, read_count, comment_count, album_pics, description, show_status, content, forward_count, category_name | 健康资讯/专题内容 |
| 101 | 专题分类表 | cms_subject_category | parent_id, name, level, product_count, product_unit, nav_status, show_status, sort, icon | 专题分类 |
| 102 | 专题评论表 | cms_subject_comment | subject_id, member_nick_name, member_icon, content, create_time, show_status | 专题评论 |
| 103 | 专题商品关系表 | cms_subject_product_relation | subject_id, product_id | 专题关联商品 |
| 104 | 话题表 | cms_topic | category_id, name, create_time, start_time, end_time, attend_count, attention_count, read_count, award_name, attend_type, content | 话题讨论区 |
| 105 | 话题分类表 | cms_topic_category | parent_id, name, icon, subject_count, show_status, sort | 话题分类 |
| 106 | 话题评论表 | cms_topic_comment | member_nick_name, topic_id, member_icon, content, create_time, show_status | 话题评论/帖子 |
| 107 | 优选专区表 | cms_prefrence_area | name, sub_title, pic, sort, show_status | 优选专区 |
| 108 | 优选专区商品关系表 | cms_prefrence_area_product_relation | prefrence_area_id, product_id | 优选专区商品 |
| 109 | 会员报告表 | cms_member_report | report_type, report_member_name, report_object, report_status, handle_status, note | 会员举报 |
| 110 | 社区帖子表 | mbn_community_posts | user_id, title, content, images(JSON), topic_tags(JSON:话题标签), view_count, like_count, comment_count, status(待审核/已发布/已删除) | 用户护理经验分享 |
| 111 | 帖子评论表 | mbn_post_comments | post_id, user_id, parent_id(父评论ID,支持回复), content, like_count, created_at | 帖子评论 |
| 112 | 直播表 | mbn_live_streams | nurse_id, title, cover_image, live_url, description, start_time, end_time, viewer_count(观看人数), like_count, replay_url, status(预告/直播中/已结束) | 护理师直播 |
| 113 | 问答问题表 | mbn_qa_questions | user_id, title, content, images(JSON), category, bounty_points(悬赏积分), answer_count, best_answer_id, status(待回答/已解决/已关闭) | 问答社区-问题 |
| 114 | 问答答案表 | mbn_qa_answers | question_id, user_id(回答人,可以是用户或护理师), content, images(JSON), like_count, is_best(是否最佳答案), created_at | 问答社区-答案 |
| 115 | 通用点赞表 | mbn_likes | user_id, target_type(护理师/评价/文章/帖子/问答), target_id, created_at | 通用点赞功能 |
2.12 拼团活动体系(已合并到营销体系)
本节内容已合并到2.6营销体系,包括:
- 拼团活动表 (mbn_group_buy_activities)
- 拼团参与表 (mbn_group_buy_participants)
2.13 激励成就体系(7张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 88 | 成就表 | achievements | name, description, icon, category(接单/收入/评价/服务), unlock_condition(JSON:解锁条件), reward_type(积分/勋章/奖金), reward_value | 成就配置 |
| 89 | 护理师成就表 | nurse_achievements | nurse_id, achievement_id, unlock_time, is_displayed(是否展示在主页) | 护理师已解锁成就 |
| 90 | 月度挑战表 | monthly_challenges | month(月份YYYYMM), challenge_name, challenge_type(接单/收入/好评), target_value(目标值), reward_amount, participant_count, complete_count | 月度挑战配置 |
| 91 | 成长值记录表 | growth_value_records | user_id, source_type(消费/评价/分享/签到), source_id(关联订单ID等), growth_value(成长值), balance_after(操作后余额), description | 会员成长值流水 |
| 92 | 排行榜快照表 | ranking_snapshots | snapshot_date, time_period(日/周/月), ranking_type(接单数/收入/好评率), ranking_data(JSON:前100名), top10_rewards(JSON), reward_issued | 历史排名快照与奖励 |
| 93 | 同行对比基准表 | peer_benchmark_data | nurse_level(初级/中级/高级/金牌), period(月份), avg_orders, avg_income, avg_rating, percentile_25/50/75(JSON), sample_size | 各等级护理师基准数据 |
| 94 | 邀请排行榜快照表 | mentor_invite_rankings | snapshot_date, time_period(周/月/总榜), ranking_position, nurse_id, invite_count(邀请数), active_count(活跃徒弟数), total_commission(累计提成), reward_amount, reward_issued | 护理师邀请排行榜历史快照 |
2.14 CRM客户关系管理(7张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 95 | 跟进记录表 | follow_up_records | user_id, operator_id(跟进客服), record_type(电话回访/上门回访/在线沟通/投诉处理), content(沟通内容), customer_feedback(客户反馈), next_follow_time, attachments(JSON:附件), follow_time | 客户跟进记录 |
| 96 | 跟进任务表 | follow_up_tasks | user_id, assigned_to(分配客服), task_title, task_description, due_date(截止时间), priority(高/中/低), status(未完成/已完成/已逾期), complete_time, complete_note | 跟进任务管理 |
| 97 | 客户分群表 | customer_segments | segment_name, segment_type(系统分群/自定义分群), filter_rules(JSON:筛选规则), user_count, description, creator_id | 客户分群配置 |
| 98 | 用户标签表 | user_tags | tag_name, tag_type(系统标签/自定义标签), color, description, creator_id | 用户标签 |
| 99 | 用户标签关系表 | user_tag_relations | user_id, tag_id, assigned_by(标签分配人), assigned_time | 用户与标签多对多关系 |
| 100 | 潜在客户表 | leads | name, phone, source_channel(官网/咨询/活动/推广), intent_service(意向服务), consult_content(咨询内容), assigned_to(分配客服), status(待跟进/跟进中/已转化/已放弃), convert_time(转化时间), first_order_id | 线索/潜在客户管理 |
| 101 | 客户分群用户关系表 | customer_segment_users | segment_id, user_id, added_time, added_by(自动/手动), operator_id, is_active | 客户分群与用户多对多关系 |
2.15 营销管理体系(8张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 102 | 营销项目表 | marketing_projects | project_name, project_type(品牌推广/用户增长/促销活动/合作项目), manager_id(负责人), participants(JSON:参与人员), budget(预算), actual_cost(实际花费), start_time, end_time, status(筹备中/进行中/已结束/已暂停), target_metrics(JSON:目标指标), actual_metrics(JSON:实际指标) | 营销项目管理 |
| 103 | 项目任务表 | project_tasks | project_id, task_name, task_description, assigned_to(负责人), due_date, priority(高/中/低), status(未开始/进行中/已完成/已延期), complete_time | 项目任务管理 |
| 104 | 渠道表 | channels | channel_name, channel_type(抖音/快手/小红书/社区合作/医院合作), manager_id, contact_info, promotion_link(推广链接), qrcode_url, commission_mode(CPS按订单/CPA按注册), commission_rate(佣金比例), settlement_cycle(月结/季结), status(正常/暂停/终止) | 推广渠道管理 |
| 105 | 渠道数据表 | channel_data | channel_id, date(统计日期), register_count(注册数), order_count(订单数), gmv(交易额), commission(佣金), conversion_rate(转化率) | 渠道数据统计(按日) |
| 106 | 素材库表 | materials | material_name, material_type(图片/视频/文档/H5/落地页), category(营销推广/用户端展示/护理师培训/内部使用), file_url, thumbnail_url, file_size, tags(JSON:标签), creator_id, usage_count(使用次数), status(待审核/已发布/已下架) | 素材库管理 |
| 107 | 素材使用统计表 | material_usage | material_id, use_channel(渠道/页面/活动), use_date, view_count(曝光量), click_count(点击数), conversion_count(转化数), click_rate(点击率), conversion_rate(转化率) | 素材效果统计 |
| 108 | 营销项目每日统计表 | marketing_project_daily_stats | project_id, stat_date, register_count, order_count, gmv, cost, roi, conversion_rate(%) | 营销项目每日效果数据 |
| 109 | 素材版本表 | material_versions | material_id, version_number, file_url, thumbnail_url, file_size, change_description, creator_id | 素材历史版本管理 |
2.16 培训学习体系(3张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 110 | 培训课程表 | training_courses | title, category(护理技能/沟通话术/安全规范/政策法规), cover_image, video_url, document_url(PDF/Word), duration(时长分钟), description, has_exam(是否有考试), pass_score(及格分数), view_count, status(已发布/已下架) | 培训课程 |
| 111 | 课程考试表 | course_exams | course_id, exam_name, questions(JSON:题目+选项+答案), pass_score, time_limit(考试时长分钟), status(启用/停用) | 课程考试 |
| 112 | 学习记录表 | user_course_progress | user_id, course_id, watch_duration(观看时长秒), watch_progress(观看进度%), exam_score(考试分数), pass_status(未考试/未通过/已通过), last_watch_time | 学习进度 |
2.17 满意度调查体系(2张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 113 | 调查问卷表 | survey_templates | title, description, questions(JSON:问题列表), trigger_type(服务完成/注册完成/定期推送), target_users(全部/指定分群), status(启用/停用) | 满意度调查问卷模板 |
| 114 | 调查结果表 | survey_responses | template_id, user_id, order_id, answers(JSON:答案), submit_time | 满意度调查结果 |
2.18 页面装修体系(4张表-预留)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 115 | 页面模板表 | page_templates | template_name, page_type(首页/活动页/专题页), preview_image, layout_config(JSON:布局配置), components(JSON:组件配置), use_count, status(启用/停用) | 页面模板 |
| 116 | 页面组件表 | page_components | component_name, component_type(文本/图片/按钮/视频/服务卡片/护理师卡片/优惠券/倒计时), config_schema(JSON:配置项定义), preview_image | 页面组件库 |
| 117 | 装修页面表 | decorated_pages | page_name, template_id, page_config(JSON:页面配置), publish_time, publish_type(立即发布/定时发布/灰度发布), target_users(全部/指定分群), status(草稿/已发布/已下线) | 已装修页面 |
| 118 | 页面发布日志表 | page_publish_logs | page_id, version_number, publish_type(立即/定时/灰度), publish_time, publisher_id, page_config(JSON快照), target_users(JSON), grayscale_percentage(灰度比例%), rollback_time, status | 页面发布历史与回滚 |
2.19 运营管理体系(3张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 119 | 投诉申诉表 | complaints | complaint_no, order_id, complainant_id(投诉人), complainant_type(用户/技师), defendant_id(被投诉人), defendant_type(用户/技师), complaint_type(服务质量/态度问题/迟到/其他), content(投诉内容), evidence(JSON:证据照片), status(待处理/处理中/已完成/已驳回), handler_id(处理人), handle_result, handle_time, punishment(处罚措施) | 投诉申诉管理 |
| 120 | 用户黑名单表 | user_blacklist | user_id, ban_reason(恶意退款/虚假评价/骚扰技师/其他违规), ban_type(永久封禁/临时封禁), ban_days(封禁天数), unban_time(解封时间), operator_id, ban_time, status(已封禁/已解封) | 用户封禁管理 |
| 121 | 技师黑名单表 | nurse_blacklist | nurse_id, ban_reason(服务态度差/虚假护理日志/迟到早退/其他违规), ban_type(永久封禁/临时封禁), ban_days(封禁天数), unban_time(解封时间), operator_id, ban_time, status(已封禁/已解封) | 技师封禁管理 |
2.20 帮助文档体系(5张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 116 | 帮助文档表 | cms_help | category_id, icon, title, show_status, create_time, read_count, content | 帮助文档/FAQ |
| 117 | 帮助分类表 | cms_help_category | parent_id, name, icon, product_count, product_unit, nav_status, show_status, sort | 帮助分类 |
| 118 | FAQ表 | mbn_faqs | category(注册登录/下单支付/订单管理/退款售后/账户安全), question(问题), answer(答案), sort_order(排序), view_count(浏览次数), helpful_count(有帮助数), status(已发布/已下架) | 常见问题FAQ(细化) |
| 119 | 新手引导表 | mbn_onboarding_steps | target_app(用户端/技师端), step_order(步骤顺序), step_title, step_description, step_image, action_type(跳过/下一步/完成), status(启用/停用) | 新手引导步骤配置 |
| 120 | 新手引导进度表(已在用户体系) | mbn_user_onboarding_progress | user_id, step_id, completed(是否完成), completed_time, skipped(是否跳过) | 新手引导完成记录 |
2.21 权限管理体系(13张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 121 | 租户表 | ums_tenant | tenant_code, tenant_name, contact_name, contact_phone, description, note, status(0禁用/1启用), admin_count, is_default(是否默认租户), created_at, updated_at, deleted_at | 租户信息管理,支持多租户数据隔离 |
| 122 | 管理员表 | ums_admin | tenant_id, username, password(BCrypt加密), real_name, phone, icon, email, nick_name, note, status(0禁用/1启用), last_login_time, last_login_ip, password_update_time, created_at, updated_at, deleted_at | 管理员账号信息,支持租户隔离 |
| 123 | 角色表 | ums_role | tenant_id, name, description, admin_count, status(0禁用/1启用), sort, created_at, updated_at, deleted_at | 后台角色配置,支持租户级隔离和软删除 |
| 124 | 菜单表 | ums_menu | tenant_id(1表示平台通用菜单), parent_id, title, name, icon, level(1目录/2菜单/3按钮), sort, hidden(0显示/1隐藏), created_at, updated_at, deleted_at | 后台菜单权限,支持平台通用和租户自定义,支持软删除 |
| 125 | 角色菜单关系表 | ums_role_menu_relation | role_id, menu_id, created_at | 角色与菜单多对多关系 |
| 126 | 资源表 | ums_resource | tenant_id(1表示平台通用资源), category_id, name, url(API路径), method(HTTP方法), description, sort(排序值), created_at, updated_at, deleted_at | 资源(API接口)管理,支持平台通用和租户自定义,支持软删除,包含V1.2新增字段method和sort |
| 127 | 资源分类表 | ums_resource_category | tenant_id(1表示平台通用分类), name, sort, created_at, updated_at, deleted_at | 资源分类管理,支持软删除 |
| 128 | 角色资源关系表 | ums_role_resource_relation | role_id, resource_id, created_at | 角色与资源多对多关系 |
| 129 | 管理员角色关系表 | ums_admin_role_relation | admin_id, role_id, created_at | 管理员与角色多对多关系 |
| 130 | 管理员登录日志表 | ums_admin_login_log | tenant_id, admin_id, ip, address, user_agent, login_result(0失败/1成功), fail_reason, created_at, deleted_at | 管理员登录历史记录,支持安全审计和软删除 |
| 131 | 审计日志表 | mbn_audit_logs | tenant_id, operator_id, operator_name, action(创建/修改/删除等), target_type(管理员/角色/菜单等), target_id, before_data(JSON), after_data(JSON), reason, ip_address, created_at, deleted_at | 操作审计日志,记录所有关键操作,支持软删除 |
| 132 | 管理员密码历史表 | ums_admin_password_history | admin_id, password(BCrypt加密), created_at | 记录管理员的密码修改历史,用于密码重复检查,来自V1.5 |
| 133 | 权限表(预留) | ums_permission | pid, name, value, icon, type, uri, status, create_time, sort | 权限配置(预留扩展) |
| 134 | 角色权限关系表(预留) | ums_role_permission_relation | role_id, permission_id | 角色与权限关系(预留扩展) |
2.22 安全记录体系(4张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 132 | 用户登录日志表(已在用户体系) | ums_member_login_log | member_id, create_time, ip, city, login_type, province | 用户登录历史 |
| 133 | 登录设备表 | mbn_login_devices | user_id, user_type(用户/技师/管理员), device_id, device_name, device_model, device_system(iOS/Android/Web), login_ip, login_location(城市), login_time, last_active_time, is_current(是否当前设备), status(正常/已移除) | 登录设备管理 |
| 134 | 服务录音表 | mbn_service_recordings | order_id, user_id, nurse_id, recording_url(加密存储), duration(时长秒), consent_status(双方已同意/单方同意/未同意), upload_time, expire_time(7天后过期), has_complaint(是否有投诉), status(有效/已删除) | 服务录音记录 |
| 135 | 短信发送记录表 | mbn_sms_records | phone, sms_type(验证码/通知/营销), template_code(模板编码), content, send_time, send_status(成功/失败), fail_reason, cost(费用), provider(阿里云/腾讯云) | 短信发送日志 |
2.23 系统配置体系(3张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 137 | 敏感词库表 | mbn_sensitive_words | word, word_type(色情/暴力/政治/广告/其他), match_type(精确匹配/模糊匹配), severity(严重/一般), action(拦截/替换/警告), status(启用/停用) | 内容审核敏感词 |
| 138 | 数据字典表 | mbn_data_dictionaries | dict_type(订单状态/服务类型/支付方式/投诉类型等), dict_code(状态码), dict_value(显示值), dict_label(标签), sort_order, parent_code, status(启用/停用) | 系统枚举值字典 |
| 139 | 文件上传记录表 | mbn_file_uploads | file_name, file_url, file_size, file_type(图片/视频/文档), upload_module(用户/技师/订单/证书), related_id(关联ID), uploader_id, uploader_type(用户/技师/管理员), upload_time, storage_provider(OSS/本地) | OSS文件管理 |
2.24 运营审核体系(4张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 140 | 内容审核表 | mbn_content_reviews | content_type(评价/护理日志/社区帖子), content_id, user_id, content, images(JSON), status(待审核/审核通过/审核拒绝), reviewer_id, review_time, reject_reason | 内容审核 |
| 141 | 护理师审核日志表 | mbn_nurse_audit_logs | nurse_id, audit_type(注册/证书/信息), audit_target_id, auditor_id, audit_result(待审核/通过/拒绝), reject_reason, audit_note, audit_time | 护理师审核历史记录 |
| 142 | 护理师等级变更日志表 | mbn_nurse_level_change_logs | nurse_id, old_level, new_level, change_type(升级/降级/手动), change_reason, trigger_data(JSON触发数据), operator_id, change_time | 护理师等级升降级历史 |
| 143 | 实时订单统计表 | mbn_real_time_order_stats | stat_time(统计时间每分钟), pending_payment_count, pending_accept_count, in_progress_count, completed_count, total_gmv, avg_order_amount, online_nurse_count, active_user_count | 实时监控大屏数据(每分钟刷新) |
2.25 分布式事务体系(3张表)
| 序号 | 表名 | 英文名 | 关键字段 | 说明 |
|---|---|---|---|---|
| 146 | 本地消息表 | local_message_table | event_id(UUID唯一), biz_type(业务类型), biz_id(业务ID), exchange(交换机), routing_key(路由键), content(事件负载JSON), status(PENDING/SENDING/SENT/COMPLETED/FAILED), retry_count(重试次数), next_retry_time(下次重试时间), last_error_at(最后失败时间), last_error_msg(失败原因), sent_at(发送成功时间) | 本地消息表(Outbox模式),保证分布式事务最终一致性,支持并发扫描(SKIP LOCKED) |
| 147 | 事件去重表 | event_dedup | event_id(主键UUID), consumed_at(消费时间) | 消费端幂等去重,保留7天后定期清理 |
| 148 | 死信队列记录表 | dlq_records | event_id(事件ID), routing_key(路由键), body(消息体), fail_reason(失败原因), retry_count(重试次数), created_at(创建时间) | 消费失败超限的消息记录,需人工介入处理和批量回放 |
设计说明:
local_message_table采用 Outbox 模式,在业务事务中同步插入消息记录,通过定时扫描+RabbitMQ实现跨服务最终一致性event_dedup提供持久化幂等保证,避免消息重复消费dlq_records记录所有消费失败的消息,支持排查和批量回放- 详细设计参见《麦瓣健康-微服务分布式事务一致性设计方案》
三、DDL建表语句(统一规范)
3.1 DDL编写规范
命名规范
- 表名: 小写+下划线,前缀表示业务领域(如:
ums_用户、mbn_麦瓣业务、pms_商品、oms_订单) - 字段名: 小写+下划线,语义清晰
- 索引名:
- 普通索引:
idx_表名_字段名 - 唯一索引:
uk_表名_字段名 - 联合索引:
idx_表名_字段1_字段2
- 普通索引:
- 外键名:
fk_表名_关联表名
字段规范
- 主键: 统一使用
id BIGINT UNSIGNED AUTO_INCREMENT - 时间字段:
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
- 软删除:
deleted_at DATETIME DEFAULT NULL COMMENT '删除时间' - 状态字段: 使用
TINYINT或VARCHAR(20),必须有注释说明所有可能值 - 金额字段:
DECIMAL(10,2),单位为元 - 手机号:
VARCHAR(20) - JSON字段: 使用MySQL 8.0的
JSON类型
表属性规范
ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci
COMMENT='表功能说明';
索引设计原则
- 主键自动创建聚簇索引
- 外键字段创建普通索引
- 高频查询字段创建索引
- 唯一性字段创建唯一索引
- 复合查询创建联合索引(注意最左前缀原则)
3.2 DDL示例(用户表)
以下是一个完整的DDL示例,展示了如何遵循上述规范创建数据表:
CREATE TABLE `ums_member` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`username` VARCHAR(64) DEFAULT NULL COMMENT '用户名',
`password` VARCHAR(64) NOT NULL COMMENT '密码(BCrypt加密)',
`nickname` VARCHAR(64) DEFAULT NULL COMMENT '昵称',
`phone` VARCHAR(20) NOT NULL COMMENT '手机号',
`icon` VARCHAR(500) DEFAULT NULL COMMENT '头像URL',
`gender` TINYINT DEFAULT 0 COMMENT '性别(0未知/1男/2女)',
`birthday` DATE DEFAULT NULL COMMENT '生日',
`city` VARCHAR(64) DEFAULT NULL COMMENT '所在城市',
`job` VARCHAR(100) DEFAULT NULL COMMENT '职业',
`personalized_signature` VARCHAR(200) DEFAULT NULL COMMENT '个性签名',
`source_type` TINYINT DEFAULT 1 COMMENT '用户来源(1APP/2H5/3后台添加)',
`integration` INT DEFAULT 0 COMMENT '当前积分',
`growth` INT DEFAULT 0 COMMENT '成长值',
`lucky_count` INT DEFAULT 0 COMMENT '剩余抽奖次数',
`history_integration` INT DEFAULT 0 COMMENT '历史总积分',
`status` TINYINT DEFAULT 1 COMMENT '账号状态(0禁用/1正常/2注销)',
`real_name` VARCHAR(64) DEFAULT NULL COMMENT '真实姓名',
`id_card` VARCHAR(256) DEFAULT NULL COMMENT '身份证号(AES加密)',
`id_card_verified` TINYINT DEFAULT 0 COMMENT '实名认证状态(0未认证/1已认证)',
`balance` DECIMAL(10,2) DEFAULT 0.00 COMMENT '账户余额(元)',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted_at` DATETIME DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_phone` (`phone`),
UNIQUE KEY `uk_username` (`username`),
KEY `idx_city` (`city`),
KEY `idx_status` (`status`),
KEY `idx_source_type` (`source_type`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表(会员)-用户基本信息、实名认证、账户余额';
说明:
- ✅ 表名采用
ums_业务前缀 - ✅ 所有字段都有中文COMMENT注释
- ✅ 主键使用
BIGINT UNSIGNED AUTO_INCREMENT - ✅ 时间字段
created_at、updated_at自动维护 - ✅ 软删除字段
deleted_at - ✅ 唯一索引
uk_phone、uk_username - ✅ 普通索引针对高频查询字段
- ✅ 表注释说明表的功能
- ✅ 其他194张表均遵循相同规范
3.3 DDL使用说明
批量导入顺序
- 基础表: 用户表、技师表、会员等级表
- 关系表: 地址表、家庭成员表、证书表
- 业务表: 订单表、支付表、健康档案表
- 配置表: 系统配置表、数据字典表
- 日志表: 登录日志表、审核日志表
初始化数据
-- 插入默认会员等级
INSERT INTO `ums_member_level` (`name`, `growth_point`, `default_status`) VALUES
('普通会员', 0, 1),
('银卡会员', 1000, 0),
('金卡会员', 5000, 0),
('钻石会员', 10000, 0);
-- 插入系统配置
INSERT INTO `mbn_system_configs` (`config_key`, `config_value`, `config_type`, `description`) VALUES
('order_payment_timeout', '1800', '订单', '待支付订单超时时间(秒)'),
('order_accept_timeout', '600', '订单', '待接单超时时间(秒)'),
('order_start_timeout', '1800', '订单', '待服务超时时间(秒)');
索引优化建议
- 定期分析慢查询日志,优化索引
- 对于大表(>100万行)考虑分区表
- 使用
EXPLAIN分析查询计划 - 避免在VARCHAR类型上创建过长索引
四、数据表分布与微服务映射
3.1 服务与表的对应关系
架构演进说明:
V1.0阶段(直接数据库查询):
- 订单服务(maiban-order)独立数据库,包含完整的订单、支付、健康档案等业务数据
- 用户服务(maiban-user)、技师服务(maiban-nurse)作为辅助数据源
- 通过数据库表关联查询获取用户、技师信息,无需跨服务调用
- 优势:开发简单、部署容易、性能高
V2.0阶段(微服务架构):
- 订单服务(maiban-order)保持独立,但仅保留订单核心数据
- 用户、技师信息通过HTTP/gRPC调用对应微服务获取
- 引入RabbitMQ实现与maiban-nurse的异步通信
- 优势:服务解耦、独立演进、技术栈灵活
数据隔离策略:
- V1.0:订单服务拥有完整业务数据,自给自足
- V2.0:各服务拥有核心数据,通过接口共享辅助数据
| 微服务 | 端口 | 负责的数据表 | 表数量 |
|---|---|---|---|
| 用户服务 | 8081 | users, family_members, user_addresses, user_favorites, user_browse_history, user_invites, user_search_history, user_tags, user_tag_relations, data_export_records, likes, user_family_bindings, user_preferences, user_onboarding_progress, mbn_account_cancel_records | 15张 |
| 技师服务 | 8082 | nurses, mbn_nurse_real_name_auth, nurse_certificates, mbn_nurse_service_categories, mbn_nurse_business_licenses, mbn_nurse_health_certificates, mbn_nurse_affiliation, mbn_merchants, mbn_nurse_teams, nurse_mentor_relations, nurse_reviews, nurse_service_ranges, nurse_statistics, achievements, nurse_achievements, monthly_challenges, ranking_snapshots, peer_benchmark_data, nurse_online_logs, order_push_logs, nurse_reject_reasons, nurse_withdraw_accounts, nurse_sign_records, nurse_tasks, nurse_monthly_challenge_progress, nurse_reward_records, mentor_commission_records, mentor_invite_rankings | 28张 |
| 订单服务 | 8083 | mbn_orders, mbn_group_orders, mbn_payments, mbn_order_status_logs, mbn_order_cancel_records, mbn_long_term_appointments, mbn_mileage_records, mbn_assessment_forms, data_export_records | 9张 |
| 支付财务服务 | 8084 | payment_records, refund_records, withdraw_records, settlement_records, invoices | 5张 |
| 健康管理服务 | 8087 | health_records, nursing_logs, health_reports, health_plans, iot_devices, symptom_records, ai_recommendations, nutrition_plans, device_alert_records, likes, health_plan_steps, iot_device_brands | 12张 |
| 营销服务 | 8090 | coupons, user_coupons, user_points, point_records, point_upgrade_rules, members, growth_value_records, red_packets, user_red_packets, activities, user_tasks, user_sign_records, group_buy_activities, group_buy_participants, marketing_projects, project_tasks, channels, channel_data, materials, material_usage, marketing_project_daily_stats, material_versions | 22张 |
| IM消息服务 | 8085 | im_messages(MongoDB), notifications, push_records | 3张 |
| 商城服务 | 8091 | products, product_categories, shopping_carts, product_orders, product_order_items, logistics, product_reviews, health_articles, community_posts, post_comments, topics, live_streams, qa_questions, qa_answers | 14张 |
| 运营管理服务 | 8092 | ums_tenant, ums_admin, ums_role, ums_menu, ums_resource, ums_resource_category, ums_admin_role_relation, ums_role_menu_relation, ums_role_resource_relation, ums_admin_login_log, mbn_audit_logs, content_reviews, complaints, user_blacklist, nurse_blacklist, banners, system_configs, follow_up_records, follow_up_tasks, customer_segments, leads, training_courses, course_exams, user_course_progress, survey_templates, survey_responses, page_templates, page_components, decorated_pages, faqs, help_docs, onboarding_steps, login_devices, service_recordings, sms_records, sensitive_words, data_dictionaries, file_uploads, customer_segment_users, page_publish_logs, nurse_audit_logs, nurse_level_change_logs, real_time_order_stats | 42张 |
总计: 181张表 (MySQL 180张 + MongoDB 1张)
表分类统计:
- 核心业务表: 181张数据表
- 用户体系相关: 18张
- 护理师相关: 28张(+7张新增:实名认证、服务类别、营业执照、健康证明、归属关系、商户信息、团队信息)
- 订单体系相关: 9张(+4张新增:订单表、团体订单表、支付记录表、订单状态日志表)
- 健康管理相关: 12张
- 支付财务相关: 5张
- 营销体系相关: 26张
- IM消息相关: 3张
- 商城体系相关: 25张
- 权限管理相关: 13张(+2张新增:租户表、审计日志表)
- 分布式事务相关: 3张
- 其他业务表: 39张
文档维护: 麦瓣健康产品团队 项目名称: 麦瓣健康康护到家平台 最后更新: 2025-11-19
变更记录:
- 2025-11-19 v3.4: ✅ 订单体系表同步:
- 新增订单体系表:同步PRD中的4张订单表(mbn_orders、mbn_group_orders、mbn_payments、mbn_order_status_logs)
- 订单服务调整:订单服务从负责5张表调整为9张表
- 表分类统计更新:在表分类统计中新增"订单体系相关: 9张"分类
- 设计规范统一:所有表均采用mbn_前缀命名,支持多租户隔离和软删除
- 2025-11-19 v3.3: 🗑️ 删除订单体系表:
- 删除订单体系章节:移除订单相关17张表(oms_order、oms_order_item、oms_order_operate_history、oms_cart_item、oms_order_return_apply、oms_order_return_reason、oms_order_setting、oms_company_address、mbn_service_orders、mbn_order_checkins、mbn_order_tracks、mbn_nursing_packages、mbn_user_packages、mbn_order_delay_records、mbn_order_cancel_records、mbn_long_term_appointments、mbn_mileage_records、mbn_assessment_forms)
- 表总数调整:从198张减少至181张,业务领域从25个减少至24个
- 订单服务调整:订单服务从负责16张表调整为5张表
- 数据迁移:订单相关数据迁移至PRD独立文档管理
- 2025-11-17 v3.2: 🔄 管理端权限系统数据库脚本整合 (Issue #72):
- 整合V1.0-V1.7所有变更:创建统一脚本文件
backend/init-database-complete.sql,整合了所有版本的表结构变更和初始化数据 - 资源表字段优化:ums_resource表新增method(HTTP方法)和sort(排序值)字段,支持更精确的权限控制
- 关系表租户隔离:ums_admin_role_relation、ums_role_menu_relation、ums_role_resource_relation新增tenant_id字段
- 密码历史表:新增ums_admin_password_history表,记录管理员密码修改历史,防止密码重复使用
- 初始化数据优化:超级管理员默认密码Admin@123,基础菜单优化为9个(移除资源分类管理菜单)
- 脚本完善:补充外键约束设置,SET FOREIGN_KEY_CHECKS = 0/1 确保建表顺序正确
- 整合V1.0-V1.7所有变更:创建统一脚本文件
- 2025-11-05 v3.1: 🔧 权限管理系统软删除支持完善 (Issue #44):
- 升级表(6张):
- ums_role:新增deleted_at字段、idx_tenant_deleted索引(tenant_id, deleted_at)
- ums_menu:新增deleted_at字段、idx_tenant_deleted索引
- ums_resource:新增deleted_at字段、idx_tenant_deleted索引
- ums_resource_category:新增deleted_at字段、idx_tenant_deleted索引
- ums_admin_login_log:新增deleted_at字段、idx_tenant_deleted索引
- mbn_audit_logs:新增deleted_at字段、idx_tenant_deleted索引
- 初始化数据优化:
- 超级管理员密码更新为Admin@123(BCrypt: $2b$10$2JTvgSinYh.R6XlRgoMd3uUKXaIu25Uw8iWLGtvr44yyRZZGSofKC)
- 基础菜单扩充至10个(新增:租户管理、资源分类管理、登录日志、审计日志)
- 模块化脚本:创建backend/database/sql/maiban-admin/模块脚本(V1.0表结构、V1.1初始化数据、V1.0回滚)
- 核心改进:所有管理端核心表统一支持软删除和租户隔离索引优化
- 升级表(6张):
- 2025-11-04 v3.0: 🔐 权限管理系统v2.0-多租户隔离升级:
- 新增表(2张):ums_tenant(租户表)、mbn_audit_logs(审计日志表)
- 升级表(7张):
- ums_admin:新增tenant_id、real_name、phone、last_login_ip、password_update_time、deleted_at字段,调整为BIGINT UNSIGNED主键
- ums_role:新增tenant_id字段,支持租户级角色隔离
- ums_menu:新增tenant_id字段,支持平台通用菜单(tenant_id=0)和租户自定义菜单
- ums_resource:新增tenant_id字段,支持平台通用资源(tenant_id=0)和租户自定义资源
- ums_resource_category:新增tenant_id字段,支持租户级分类隔离
- ums_admin_login_log:新增tenant_id、login_result、fail_reason字段
- ums_admin_role_relation/ums_role_menu_relation/ums_role_resource_relation:新增created_at字段,调整主键为BIGINT UNSIGNED
- 核心特性:完整支持多租户数据隔离、RBAC权限模型、操作审计、细粒度权限控制
- 表总数:196→198张
- 2025-10-29 v2.3: 📝 优化用户账户系统字段:
- ums_member表:新增id_card_expire_date(身份证有效期)、real_name_fail_reason(认证失败原因)、auth_time(认证通过时间)、deleted_at(软删除)字段
- ums_member_login_log表:新增device_model(设备型号)、device_system(iOS/Android)字段
- mbn_account_cancel_records表:新增cancel_feedback(详细反馈)、cooldown_days(冷静期天数)、operator_note(操作备注)字段
- 所有调整遵循DDL规范:BIGINT UNSIGNED主键、TINYINT状态字段、VARCHAR(20)手机号、完整中文注释
- 2025-10-29 v2.2: 🎯 完善用户端账户系统:更新ums_member表(新增微信授权和实名认证字段),新增mbn_account_cancel_records表(账号注销记录),表总数195→196张
- 2025-10-29 v2.1: 📝 新增DDL建表语句章节:新增统一规范和DDL示例,包含命名规范、字段规范、索引设计原则,提供用户表完整DDL示例(含中文注释)、批量导入顺序、初始化数据示例
- 2025-10-24 v2.0: 🎯 新增技师归属关系管理:新增3张表(mbn_nurse_affiliation、mbn_merchants、mbn_nurse_teams),支持平台技师/商户技师/团队技师三种归属类型,表总数192→195张
- 2025-10-24 v1.1: 新增技师端账户系统4张表(实名认证、服务类别、营业执照、健康证明),表总数188→192张
- 2025-10-21 v1.0: 初始版本,188张表
