麦瓣健康麦瓣健康
首页
  • APP产品开发方案
  • 商业调查报告
  • 后端技术架构
  • Docker Compose部署指南
  • 技师端-功能模块与微服务对应关系
  • 数据库设计
  • 分布式事务一致性
  • 日志管理与配置
  • Netdata监控系统
  • 系统总览
  • 文档导航
  • 代码审计智能体
  • 测试生成智能体
  • 运维诊断智能体
  • APP测试智能体
  • API自动化测试多智能体协作系统
  • 项目规划
  • 开发工作手册
  • 开发周期管理
  • 任务看板总览
  • Week 3任务看板
  • Week 3周例会
  • Week 4任务看板
  • Week 5任务看板
  • Week 6任务看板
  • APP测试设备采购清单
  • 用户端APP
  • 用户端APP功能脑图
  • 技师端APP
  • 技师端APP功能脑图
  • 后台管理
  • 大数据屏幕
  • 技师端-账户系统需求明细
原型图(Demo)
GitHub
首页
  • APP产品开发方案
  • 商业调查报告
  • 后端技术架构
  • Docker Compose部署指南
  • 技师端-功能模块与微服务对应关系
  • 数据库设计
  • 分布式事务一致性
  • 日志管理与配置
  • Netdata监控系统
  • 系统总览
  • 文档导航
  • 代码审计智能体
  • 测试生成智能体
  • 运维诊断智能体
  • APP测试智能体
  • API自动化测试多智能体协作系统
  • 项目规划
  • 开发工作手册
  • 开发周期管理
  • 任务看板总览
  • Week 3任务看板
  • Week 3周例会
  • Week 4任务看板
  • Week 5任务看板
  • Week 6任务看板
  • APP测试设备采购清单
  • 用户端APP
  • 用户端APP功能脑图
  • 技师端APP
  • 技师端APP功能脑图
  • 后台管理
  • 大数据屏幕
  • 技师端-账户系统需求明细
原型图(Demo)
GitHub
  • 技术架构

    • 麦瓣健康后端技术架构文档
    • /Docker部署指南.html
    • 技师端功能模块与微服务对应关系
    • 数据库设计文档
    • 麦瓣健康 - 微服务分布式事务一致性设计方案
    • 日志管理与配置说明
    • Netdata 监控系统技术文档

数据库设计文档

项目名称: 麦瓣健康康护到家平台 - 数据库设计方案 数据库类型: 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字段类型
连接池HikariCPSpring Boot 3默认连接池
ORM框架MyBatis Plus对象关系映射,简化CRUD
缓存层Redis 7.x热点数据缓存,减轻数据库压力
NoSQLMongoDB 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_memberusername, 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_levelname, 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_addressmember_id, name, phone_number, default_status, post_code, province, city, region, detail_address服务地址/收货地址管理
4用户标签表ums_member_tagname用户标签
5用户标签关系表ums_member_member_tag_relationmember_id, tag_id用户与标签多对多关系
6用户统计信息表ums_member_statistics_infomember_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_taskname, growth, integration(奖励积分), type(新手/日常/每周)任务配置
8用户登录日志表ums_member_login_logmember_id, create_time, ip, city, province, login_type(1手机号/2微信), device_id, device_name, device_model(设备型号), device_system(iOS/Android)登录历史记录,用于安全审计和异常登录检测
9家庭成员表mbn_family_membersuser_id, name, relationship(父母/配偶/子女/本人), age, gender, phone, id_card(加密), is_default, medical_insurance_no(医保卡号), emergency_contact_name, emergency_contact_phone被护理人信息管理
10用户收藏表mbn_user_favoritesuser_id, nurse_id, created_at收藏技师
11浏览历史表mbn_user_browse_historyuser_id, browse_type(技师/商品/文章), target_id, browse_time, browse_duration(浏览时长), source_page(来源页面)浏览记录
12邀请记录表mbn_user_invitesinviter_id(邀请人), invitee_id(被邀请人), invite_code, invite_type(用户邀请/技师邀请), status(已注册/已认证/已下单), reward_amount老带新功能
13用户搜索记录表mbn_user_search_historyuser_id, keyword, search_type(技师/商品), search_time搜索历史
14用户家庭绑定表mbn_user_family_bindingschild_user_id(子女ID), parent_user_id(父母ID), relationship(父亲/母亲), bind_status(待确认/已绑定/已解绑), can_view_orders, can_place_orders, can_pay子女远程协助父母功能
15用户偏好设置表mbn_user_preferencesuser_id, theme_color, dark_mode, font_size(标准/大/超大), simple_mode(简化模式), voice_speed(语音播报速度), language, notification_sound, vibrate用户个性化偏好设置
16用户引导进度表mbn_user_onboarding_progressuser_id, step_id, completed(是否完成), completed_time, skipped(是否跳过)新手引导完成记录
17数据导出记录表mbn_data_export_recordsuser_id, export_type(个人信息/订单/健康档案/聊天记录/全部), export_format(PDF/Excel/JSON), export_status, file_url, expire_time用户数据导出记录
18账号注销记录表mbn_account_cancel_recordsuser_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护理师表nursesphone, 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_authnurse_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_certificatesnurse_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_categoriesnurse_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_licensesnurse_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_certificatesnurse_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_relationsmentor_id(师傅ID), apprentice_id(徒弟ID), commission_rate(提成比例), total_commission(累计提成), relation_start_time, status(有效/已解除)师徒体系
18技师评价表nurse_reviewsnurse_id, order_id, user_id, rating, tags(JSON:服务态度/专业技能/准时到达), content, photos(JSON), nurse_reply, created_at技师评价管理
19技师服务范围表nurse_service_rangesnurse_id, province, city, districts(JSON:可服务区县), max_distance(最大服务距离KM)服务范围配置
20技师统计表nurse_statisticsnurse_id, total_orders, total_income, total_service_hours, accept_rate(接单率), complete_rate(完单率), positive_rate(好评率), cancel_count, month_orders, month_income业绩统计数据
21护理师在线日志表nurse_online_logsnurse_id, online_time(上线时间), offline_time(下线时间), duration(在线时长分钟), device_type, app_version护理师在线状态日志,用于统计在线时长
22订单推送日志表order_push_logsorder_id, nurse_id, push_time, response_time, response_type(已接单/已拒绝/超时/忽略), reject_reason, distance(护理师距离KM), recommend_score(推荐得分)订单推送历史记录,优化分配算法
23拒单原因预设表nurse_reject_reasonsreason_text(原因文本), reason_code(原因代码), reason_category(距离/时间/技能/个人/其他), is_active, sort_order拒单原因配置与统计
24护理师提现账户表nurse_withdraw_accountsnurse_id, account_type(微信/支付宝/银行卡), account_name, account_number(加密), bank_name, bank_branch, is_default, status, verified护理师多个提现账户管理
25护理师签到记录表nurse_sign_recordsnurse_id, sign_date, continuous_days(连续签到天数), reward_amount(奖励金额), reward_points(奖励积分)护理师每日签到打卡记录
26护理师任务表nurse_tasksnurse_id, task_id, task_name, task_type(日常/周/月/新手), progress(当前进度), target(目标进度), reward_type(奖金/积分/优惠券), reward_value, status(进行中/已完成/已领取/已过期)护理师任务中心
27护理师月度挑战进度表nurse_monthly_challenge_progressnurse_id, challenge_id, month(月份YYYYMM), progress_value(当前进度), target_value(目标值), is_completed, reward_amount, reward_issued月度挑战参与与进度
28护理师奖励记录表nurse_reward_recordsnurse_id, reward_type(完单/好评/签到/任务/挑战/排名/邀请), reward_source_id(来源ID), reward_amount, reward_points, reward_reason, reward_time, balance_after(操作后余额), status护理师所有奖励统一流水
29师徒提成记录表mentor_commission_recordsmentor_id(师傅ID), apprentice_id(徒弟ID), order_id, order_amount, commission_rate(提成比例%), commission_amount(提成金额), relation_months(师徒关系月数), commission_time, status师徒提成明细记录
30技师归属关系表mbn_nurse_affiliationnurse_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_merchantsmerchant_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_teamsteam_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_recordstrade_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_recordsorder_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_recordsnurse_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_recordsorder_id(唯一), total_amount, platform_fee(平台佣金), nurse_fee(技师收入), commission_rate(佣金比例), settle_time订单分账
48发票表mbn_invoicesuser_id, order_ids(JSON:合并开票), invoice_type(个人/企业), invoice_title, tax_no(纳税人识别号), invoice_amount, invoice_content, pdf_url, email, status(待开具/已开具/已邮寄)电子发票

2.5 健康管理体系(12张表)

序号表名英文名关键字段说明
42健康档案表health_recordsuser_id, patient_name, patient_age, patient_gender, medical_history(JSON,加密), allergies(JSON,加密), medications(JSON,加密), vital_signs(JSON:血压心率血糖体温历史), health_risk_level(低/中/高/危急), ai_suggestions健康档案
43护理日志表nursing_logsorder_id, nurse_id, patient_id, service_content, vital_signs(JSON:本次体征), photos(JSON), remarks护理记录
44体检报告表health_reportsuser_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_plansuser_id, patient_id, plan_name, plan_type(用药/饮食/运动), plan_content(JSON), start_date, end_date, remind_time, status(进行中/已完成/已取消)健康计划
46物联网设备表iot_devicesuser_id, device_type(手环/手表/血压计/血糖仪/血氧仪), device_brand, device_model, device_id, bind_time, last_sync_time, sync_status(正常/离线/异常), device_sn(序列号), firmware_version, battery_levelIoT设备集成
47症状记录表symptom_recordsuser_id, patient_id, body_part(头/颈/肩/腰/腿等), symptom_type(疼痛/麻木/肿胀), severity(1-10分), duration(持续时间), description身体对应点症状记录
48AI推荐记录表ai_recommendationsuser_id, recommend_type(护理师/服务项目/营养方案/商品), recommend_reason_data(JSON), recommend_items(JSON), click_count, order_count, click_rate, conversion_rateAI推荐记录与效果分析
49营养方案表nutrition_plansplan_name, target_group(高血压/糖尿病/孕妇/老年人), diet_suggestions(JSON), nutrition_supplements(JSON), meal_plan(JSON), creator_type(AI/营养师), status营养方案配置
50设备预警记录表device_alert_recordsuser_id, device_id, alert_type(心率异常/血压异常/血糖异常/久坐), alert_level(低/中/高/危急), alert_value, normal_range, is_handledIoT设备异常预警记录
51通用点赞表likesuser_id, target_type(护理师/评价/文章/帖子/问答), target_id, created_at通用点赞功能
52健康计划步骤表health_plan_stepsplan_id, step_order(步骤顺序), step_name, step_description, step_type(日常/周/月), target_value(目标值), current_value(当前值), is_completed, completed_time健康计划详细步骤与打卡
53IoT设备品牌型号表iot_device_brandsbrand_name, device_type, model_name, model_code, api_type(蓝牙/WiFi/云端), api_endpoint, sdk_version, is_supported, sort_order支持的IoT设备品牌型号库

2.6 营销体系(26张表)

序号表名英文名关键字段说明
49优惠券模板表sms_coupontype, 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_historycoupon_id, member_id, coupon_code, member_nickname, get_type, create_time, use_status, use_time, order_id, order_sn用户优惠券领取使用记录
51优惠券商品分类关系表sms_coupon_product_category_relationcoupon_id, product_category_id, product_category_name, parent_category_name优惠券适用商品分类
52优惠券商品关系表sms_coupon_product_relationcoupon_id, product_id, product_name, product_sn优惠券适用商品
53限时购活动表sms_flash_promotiontitle, start_date, end_date, status, create_time限时购/秒杀活动
54限时购场次表sms_flash_promotion_sessionname, start_time, end_time, status, create_time限时购场次配置
55限时购商品关系表sms_flash_promotion_product_relationflash_promotion_id, flash_promotion_session_id, product_id, flash_promotion_price, flash_promotion_count, flash_promotion_limit, sort限时购商品配置
56限时购日志表sms_flash_promotion_logmember_id, product_id, member_phone, product_name, subscribe_time, send_time限时购通知日志
57首页广告表sms_home_advertisename, type, pic, start_time, end_time, status, click_count, order_count, url, note, sortBanner/广告位
58首页品牌推荐表sms_home_brandbrand_id, brand_name, recommend_status, sort首页推荐品牌
59首页新品推荐表sms_home_new_productproduct_id, product_name, recommend_status, sort首页新品推荐
60首页推荐商品表sms_home_recommend_productproduct_id, product_name, recommend_status, sort首页推荐商品
61首页推荐专题表sms_home_recommend_subjectsubject_id, subject_name, recommend_status, sort首页推荐专题
62积分变更历史表ums_integration_change_historymember_id, create_time, change_type, change_count, operate_man, operate_note, source_type积分流水
63积分消费设置表ums_integration_consume_settingdeduction_per_amount, max_percent_per_order, use_unit, coupon_status积分使用规则
64成长值变更历史表ums_growth_change_historymember_id, create_time, change_type, change_count, operate_man, operate_note, source_type成长值流水
65会员规则设置表ums_member_rule_settingcontinue_sign_day, continue_sign_point, consume_per_point, low_order_amount, max_point_per_order, type会员积分规则
66积分账户表mbn_user_pointsuser_id, total_points(累计积分), available_points(可用积分), frozen_points(冻结积分), expire_points(即将过期)积分余额汇总
67积分升级规则表mbn_point_upgrade_rulesrule_name, required_points(所需积分), target_type(服务项目/套餐/权限), target_id, privilege_code, upgrade_benefit, status积分升级配置
68红包表mbn_red_packetsname, 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_packetsuser_id, red_packet_id, amount, receive_time, use_time, expire_time, status(未使用/已使用/已过期), order_id用户红包
70活动表mbn_activitiesactivity_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_recordsuser_id, sign_date, continuous_days(连续天数), reward_points, reward_coupon_id签到打卡
72拼团活动表mbn_group_buy_activitiestitle, 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_participantsactivity_id, group_id(拼团组ID), user_id, is_leader(是否团长), order_id, join_time, group_status(拼团中/已成团/已失败), refund_status拼团参与记录
74会员产品分类关系表ums_member_product_category_relationmember_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)

序号表名英文名关键字段说明
65IM消息表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通知表notificationsuser_id(接收人), notify_type(订单/系统/活动/健康/设备), title, content, related_type(order/activity/report), related_id, is_read, read_time, priority(优先级), push_channels(JSON)通知中心
67推送记录表push_recordsuser_id, push_type(极光推送/模板消息/短信), title, content, push_time, push_status(成功/失败), fail_reason, device_token推送日志

2.9 商城体系(25张表)

序号表名英文名关键字段说明
75商品表pms_productname, 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_categoryparent_id, name, level, product_count, product_unit, nav_status, show_status, sort, icon, keywords, description商品分类
77商品属性分类表pms_product_attribute_categoryname, attribute_count, param_count商品类型(属性分组)
78商品属性表pms_product_attributeproduct_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_valueproduct_id, product_attribute_id, value商品属性值
80商品分类属性关系表pms_product_category_attribute_relationproduct_category_id, product_attribute_id分类与属性关系
81品牌表pms_brandname, first_letter, sort, factory_status, show_status, product_count, product_comment_count, logo, big_pic, brand_story品牌管理
82商品评论表pms_commentproduct_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_replaycomment_id, member_nick_name, member_icon, content, create_time, type评论回复
84SKU库存表pms_sku_stockproduct_id, sku_code, price, stock, low_stock, pic, sale, promotion_price, lock_stock, sp_dataSKU管理
85会员价格表pms_member_priceproduct_id, member_level_id, member_price, member_level_name会员价格
86商品阶梯价格表pms_product_ladderproduct_id, count, discount, price阶梯价格
87商品满减表pms_product_full_reductionproduct_id, full_price, reduce_price满减优惠
88商品审核记录表pms_product_vertify_recordproduct_id, create_time, vertify_man, status, detail商品审核历史
89商品操作日志表pms_product_operate_logproduct_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_templatename, charge_type, first_weight, first_fee, continue_weight, continue_fee, dest运费模板
91相册表pms_albumname, cover_pic, pic_count, sort, description图片相册
92相册图片表pms_album_picalbum_id, pic相册图片
93购物车表(已在订单体系)oms_cart_itemproduct_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_orderorder_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_itemorder_id, order_sn, product_id, product_name, product_pic, product_price, product_quantity, product_sku_code订单明细
96物流表mbn_logisticsorder_id, logistics_company, logistics_no, logistics_status(待发货/已揽件/运输中/派送中/已签收), current_city, trace_info(JSON:物流轨迹), delivered_time物流跟踪
97服务项目表mbn_service_itemsname, category_id, service_type(老年康复/孕产护理/慢病管理/术后康复), price, duration(时长分钟), description, features(JSON:功效特点), target_group(适宜人群), precautions(注意事项), status(上架/下架)服务项目配置
98服务分类表mbn_service_categoriesname, parent_id, level(1/2级), icon, description, sort_order服务分类
99系统配置表mbn_system_configsconfig_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_subjectcategory_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_categoryparent_id, name, level, product_count, product_unit, nav_status, show_status, sort, icon专题分类
102专题评论表cms_subject_commentsubject_id, member_nick_name, member_icon, content, create_time, show_status专题评论
103专题商品关系表cms_subject_product_relationsubject_id, product_id专题关联商品
104话题表cms_topiccategory_id, name, create_time, start_time, end_time, attend_count, attention_count, read_count, award_name, attend_type, content话题讨论区
105话题分类表cms_topic_categoryparent_id, name, icon, subject_count, show_status, sort话题分类
106话题评论表cms_topic_commentmember_nick_name, topic_id, member_icon, content, create_time, show_status话题评论/帖子
107优选专区表cms_prefrence_areaname, sub_title, pic, sort, show_status优选专区
108优选专区商品关系表cms_prefrence_area_product_relationprefrence_area_id, product_id优选专区商品
109会员报告表cms_member_reportreport_type, report_member_name, report_object, report_status, handle_status, note会员举报
110社区帖子表mbn_community_postsuser_id, title, content, images(JSON), topic_tags(JSON:话题标签), view_count, like_count, comment_count, status(待审核/已发布/已删除)用户护理经验分享
111帖子评论表mbn_post_commentspost_id, user_id, parent_id(父评论ID,支持回复), content, like_count, created_at帖子评论
112直播表mbn_live_streamsnurse_id, title, cover_image, live_url, description, start_time, end_time, viewer_count(观看人数), like_count, replay_url, status(预告/直播中/已结束)护理师直播
113问答问题表mbn_qa_questionsuser_id, title, content, images(JSON), category, bounty_points(悬赏积分), answer_count, best_answer_id, status(待回答/已解决/已关闭)问答社区-问题
114问答答案表mbn_qa_answersquestion_id, user_id(回答人,可以是用户或护理师), content, images(JSON), like_count, is_best(是否最佳答案), created_at问答社区-答案
115通用点赞表mbn_likesuser_id, target_type(护理师/评价/文章/帖子/问答), target_id, created_at通用点赞功能

2.12 拼团活动体系(已合并到营销体系)

本节内容已合并到2.6营销体系,包括:

  • 拼团活动表 (mbn_group_buy_activities)
  • 拼团参与表 (mbn_group_buy_participants)

2.13 激励成就体系(7张表)

序号表名英文名关键字段说明
88成就表achievementsname, description, icon, category(接单/收入/评价/服务), unlock_condition(JSON:解锁条件), reward_type(积分/勋章/奖金), reward_value成就配置
89护理师成就表nurse_achievementsnurse_id, achievement_id, unlock_time, is_displayed(是否展示在主页)护理师已解锁成就
90月度挑战表monthly_challengesmonth(月份YYYYMM), challenge_name, challenge_type(接单/收入/好评), target_value(目标值), reward_amount, participant_count, complete_count月度挑战配置
91成长值记录表growth_value_recordsuser_id, source_type(消费/评价/分享/签到), source_id(关联订单ID等), growth_value(成长值), balance_after(操作后余额), description会员成长值流水
92排行榜快照表ranking_snapshotssnapshot_date, time_period(日/周/月), ranking_type(接单数/收入/好评率), ranking_data(JSON:前100名), top10_rewards(JSON), reward_issued历史排名快照与奖励
93同行对比基准表peer_benchmark_datanurse_level(初级/中级/高级/金牌), period(月份), avg_orders, avg_income, avg_rating, percentile_25/50/75(JSON), sample_size各等级护理师基准数据
94邀请排行榜快照表mentor_invite_rankingssnapshot_date, time_period(周/月/总榜), ranking_position, nurse_id, invite_count(邀请数), active_count(活跃徒弟数), total_commission(累计提成), reward_amount, reward_issued护理师邀请排行榜历史快照

2.14 CRM客户关系管理(7张表)

序号表名英文名关键字段说明
95跟进记录表follow_up_recordsuser_id, operator_id(跟进客服), record_type(电话回访/上门回访/在线沟通/投诉处理), content(沟通内容), customer_feedback(客户反馈), next_follow_time, attachments(JSON:附件), follow_time客户跟进记录
96跟进任务表follow_up_tasksuser_id, assigned_to(分配客服), task_title, task_description, due_date(截止时间), priority(高/中/低), status(未完成/已完成/已逾期), complete_time, complete_note跟进任务管理
97客户分群表customer_segmentssegment_name, segment_type(系统分群/自定义分群), filter_rules(JSON:筛选规则), user_count, description, creator_id客户分群配置
98用户标签表user_tagstag_name, tag_type(系统标签/自定义标签), color, description, creator_id用户标签
99用户标签关系表user_tag_relationsuser_id, tag_id, assigned_by(标签分配人), assigned_time用户与标签多对多关系
100潜在客户表leadsname, phone, source_channel(官网/咨询/活动/推广), intent_service(意向服务), consult_content(咨询内容), assigned_to(分配客服), status(待跟进/跟进中/已转化/已放弃), convert_time(转化时间), first_order_id线索/潜在客户管理
101客户分群用户关系表customer_segment_userssegment_id, user_id, added_time, added_by(自动/手动), operator_id, is_active客户分群与用户多对多关系

2.15 营销管理体系(8张表)

序号表名英文名关键字段说明
102营销项目表marketing_projectsproject_name, project_type(品牌推广/用户增长/促销活动/合作项目), manager_id(负责人), participants(JSON:参与人员), budget(预算), actual_cost(实际花费), start_time, end_time, status(筹备中/进行中/已结束/已暂停), target_metrics(JSON:目标指标), actual_metrics(JSON:实际指标)营销项目管理
103项目任务表project_tasksproject_id, task_name, task_description, assigned_to(负责人), due_date, priority(高/中/低), status(未开始/进行中/已完成/已延期), complete_time项目任务管理
104渠道表channelschannel_name, channel_type(抖音/快手/小红书/社区合作/医院合作), manager_id, contact_info, promotion_link(推广链接), qrcode_url, commission_mode(CPS按订单/CPA按注册), commission_rate(佣金比例), settlement_cycle(月结/季结), status(正常/暂停/终止)推广渠道管理
105渠道数据表channel_datachannel_id, date(统计日期), register_count(注册数), order_count(订单数), gmv(交易额), commission(佣金), conversion_rate(转化率)渠道数据统计(按日)
106素材库表materialsmaterial_name, material_type(图片/视频/文档/H5/落地页), category(营销推广/用户端展示/护理师培训/内部使用), file_url, thumbnail_url, file_size, tags(JSON:标签), creator_id, usage_count(使用次数), status(待审核/已发布/已下架)素材库管理
107素材使用统计表material_usagematerial_id, use_channel(渠道/页面/活动), use_date, view_count(曝光量), click_count(点击数), conversion_count(转化数), click_rate(点击率), conversion_rate(转化率)素材效果统计
108营销项目每日统计表marketing_project_daily_statsproject_id, stat_date, register_count, order_count, gmv, cost, roi, conversion_rate(%)营销项目每日效果数据
109素材版本表material_versionsmaterial_id, version_number, file_url, thumbnail_url, file_size, change_description, creator_id素材历史版本管理

2.16 培训学习体系(3张表)

序号表名英文名关键字段说明
110培训课程表training_coursestitle, category(护理技能/沟通话术/安全规范/政策法规), cover_image, video_url, document_url(PDF/Word), duration(时长分钟), description, has_exam(是否有考试), pass_score(及格分数), view_count, status(已发布/已下架)培训课程
111课程考试表course_examscourse_id, exam_name, questions(JSON:题目+选项+答案), pass_score, time_limit(考试时长分钟), status(启用/停用)课程考试
112学习记录表user_course_progressuser_id, course_id, watch_duration(观看时长秒), watch_progress(观看进度%), exam_score(考试分数), pass_status(未考试/未通过/已通过), last_watch_time学习进度

2.17 满意度调查体系(2张表)

序号表名英文名关键字段说明
113调查问卷表survey_templatestitle, description, questions(JSON:问题列表), trigger_type(服务完成/注册完成/定期推送), target_users(全部/指定分群), status(启用/停用)满意度调查问卷模板
114调查结果表survey_responsestemplate_id, user_id, order_id, answers(JSON:答案), submit_time满意度调查结果

2.18 页面装修体系(4张表-预留)

序号表名英文名关键字段说明
115页面模板表page_templatestemplate_name, page_type(首页/活动页/专题页), preview_image, layout_config(JSON:布局配置), components(JSON:组件配置), use_count, status(启用/停用)页面模板
116页面组件表page_componentscomponent_name, component_type(文本/图片/按钮/视频/服务卡片/护理师卡片/优惠券/倒计时), config_schema(JSON:配置项定义), preview_image页面组件库
117装修页面表decorated_pagespage_name, template_id, page_config(JSON:页面配置), publish_time, publish_type(立即发布/定时发布/灰度发布), target_users(全部/指定分群), status(草稿/已发布/已下线)已装修页面
118页面发布日志表page_publish_logspage_id, version_number, publish_type(立即/定时/灰度), publish_time, publisher_id, page_config(JSON快照), target_users(JSON), grayscale_percentage(灰度比例%), rollback_time, status页面发布历史与回滚

2.19 运营管理体系(3张表)

序号表名英文名关键字段说明
119投诉申诉表complaintscomplaint_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_blacklistuser_id, ban_reason(恶意退款/虚假评价/骚扰技师/其他违规), ban_type(永久封禁/临时封禁), ban_days(封禁天数), unban_time(解封时间), operator_id, ban_time, status(已封禁/已解封)用户封禁管理
121技师黑名单表nurse_blacklistnurse_id, ban_reason(服务态度差/虚假护理日志/迟到早退/其他违规), ban_type(永久封禁/临时封禁), ban_days(封禁天数), unban_time(解封时间), operator_id, ban_time, status(已封禁/已解封)技师封禁管理

2.20 帮助文档体系(5张表)

序号表名英文名关键字段说明
116帮助文档表cms_helpcategory_id, icon, title, show_status, create_time, read_count, content帮助文档/FAQ
117帮助分类表cms_help_categoryparent_id, name, icon, product_count, product_unit, nav_status, show_status, sort帮助分类
118FAQ表mbn_faqscategory(注册登录/下单支付/订单管理/退款售后/账户安全), question(问题), answer(答案), sort_order(排序), view_count(浏览次数), helpful_count(有帮助数), status(已发布/已下架)常见问题FAQ(细化)
119新手引导表mbn_onboarding_stepstarget_app(用户端/技师端), step_order(步骤顺序), step_title, step_description, step_image, action_type(跳过/下一步/完成), status(启用/停用)新手引导步骤配置
120新手引导进度表(已在用户体系)mbn_user_onboarding_progressuser_id, step_id, completed(是否完成), completed_time, skipped(是否跳过)新手引导完成记录

2.21 权限管理体系(13张表)

序号表名英文名关键字段说明
121租户表ums_tenanttenant_code, tenant_name, contact_name, contact_phone, description, note, status(0禁用/1启用), admin_count, is_default(是否默认租户), created_at, updated_at, deleted_at租户信息管理,支持多租户数据隔离
122管理员表ums_admintenant_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_roletenant_id, name, description, admin_count, status(0禁用/1启用), sort, created_at, updated_at, deleted_at后台角色配置,支持租户级隔离和软删除
124菜单表ums_menutenant_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_relationrole_id, menu_id, created_at角色与菜单多对多关系
126资源表ums_resourcetenant_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_categorytenant_id(1表示平台通用分类), name, sort, created_at, updated_at, deleted_at资源分类管理,支持软删除
128角色资源关系表ums_role_resource_relationrole_id, resource_id, created_at角色与资源多对多关系
129管理员角色关系表ums_admin_role_relationadmin_id, role_id, created_at管理员与角色多对多关系
130管理员登录日志表ums_admin_login_logtenant_id, admin_id, ip, address, user_agent, login_result(0失败/1成功), fail_reason, created_at, deleted_at管理员登录历史记录,支持安全审计和软删除
131审计日志表mbn_audit_logstenant_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_historyadmin_id, password(BCrypt加密), created_at记录管理员的密码修改历史,用于密码重复检查,来自V1.5
133权限表(预留)ums_permissionpid, name, value, icon, type, uri, status, create_time, sort权限配置(预留扩展)
134角色权限关系表(预留)ums_role_permission_relationrole_id, permission_id角色与权限关系(预留扩展)

2.22 安全记录体系(4张表)

序号表名英文名关键字段说明
132用户登录日志表(已在用户体系)ums_member_login_logmember_id, create_time, ip, city, login_type, province用户登录历史
133登录设备表mbn_login_devicesuser_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_recordingsorder_id, user_id, nurse_id, recording_url(加密存储), duration(时长秒), consent_status(双方已同意/单方同意/未同意), upload_time, expire_time(7天后过期), has_complaint(是否有投诉), status(有效/已删除)服务录音记录
135短信发送记录表mbn_sms_recordsphone, sms_type(验证码/通知/营销), template_code(模板编码), content, send_time, send_status(成功/失败), fail_reason, cost(费用), provider(阿里云/腾讯云)短信发送日志

2.23 系统配置体系(3张表)

序号表名英文名关键字段说明
137敏感词库表mbn_sensitive_wordsword, word_type(色情/暴力/政治/广告/其他), match_type(精确匹配/模糊匹配), severity(严重/一般), action(拦截/替换/警告), status(启用/停用)内容审核敏感词
138数据字典表mbn_data_dictionariesdict_type(订单状态/服务类型/支付方式/投诉类型等), dict_code(状态码), dict_value(显示值), dict_label(标签), sort_order, parent_code, status(启用/停用)系统枚举值字典
139文件上传记录表mbn_file_uploadsfile_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_reviewscontent_type(评价/护理日志/社区帖子), content_id, user_id, content, images(JSON), status(待审核/审核通过/审核拒绝), reviewer_id, review_time, reject_reason内容审核
141护理师审核日志表mbn_nurse_audit_logsnurse_id, audit_type(注册/证书/信息), audit_target_id, auditor_id, audit_result(待审核/通过/拒绝), reject_reason, audit_note, audit_time护理师审核历史记录
142护理师等级变更日志表mbn_nurse_level_change_logsnurse_id, old_level, new_level, change_type(升级/降级/手动), change_reason, trigger_data(JSON触发数据), operator_id, change_time护理师等级升降级历史
143实时订单统计表mbn_real_time_order_statsstat_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_tableevent_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_dedupevent_id(主键UUID), consumed_at(消费时间)消费端幂等去重,保留7天后定期清理
148死信队列记录表dlq_recordsevent_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使用说明

批量导入顺序

  1. 基础表: 用户表、技师表、会员等级表
  2. 关系表: 地址表、家庭成员表、证书表
  3. 业务表: 订单表、支付表、健康档案表
  4. 配置表: 系统配置表、数据字典表
  5. 日志表: 登录日志表、审核日志表

初始化数据

-- 插入默认会员等级
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:各服务拥有核心数据,通过接口共享辅助数据
微服务端口负责的数据表表数量
用户服务8081users, 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_records15张
技师服务8082nurses, 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_rankings28张
订单服务8083mbn_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_records9张
支付财务服务8084payment_records, refund_records, withdraw_records, settlement_records, invoices5张
健康管理服务8087health_records, nursing_logs, health_reports, health_plans, iot_devices, symptom_records, ai_recommendations, nutrition_plans, device_alert_records, likes, health_plan_steps, iot_device_brands12张
营销服务8090coupons, 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_versions22张
IM消息服务8085im_messages(MongoDB), notifications, push_records3张
商城服务8091products, product_categories, shopping_carts, product_orders, product_order_items, logistics, product_reviews, health_articles, community_posts, post_comments, topics, live_streams, qa_questions, qa_answers14张
运营管理服务8092ums_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_stats42张

总计: 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 确保建表顺序正确
  • 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回滚)
    • 核心改进:所有管理端核心表统一支持软删除和租户隔离索引优化
  • 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张表
在 GitHub 上编辑此页
最后更新: 2025/11/25 14:55
贡献者: helayD, David, dengwuyang, AI Assistant, Claude Code
Prev
技师端功能模块与微服务对应关系
Next
麦瓣健康 - 微服务分布式事务一致性设计方案