Files
xk-docs/docs/database/overview.md
2026-07-08 15:04:42 +08:00

6.1 KiB
Raw Blame History

数据库总览

XK 系统使用两个 MySQL 数据库,分别存储新旧系统的数据。

数据库概况

数据库 表数量 状态 说明
z_xk 67 张 活跃使用 新库,当前核心业务表
z_o_xk ~100 张 部分使用 旧库Yii2 时代遗留

双库关系

graph TB
    subgraph ZXK["z_xk 新库 67张表"]
        A1[管理后台]
        A2[财务结算]
        A3[销售推广]
        A4[特色处方]
        A5[监管日志]
        A6[系统配置]
        A7[聊天消息]
        A8[中医疾病库]
    end

    subgraph OXK["z_o_xk 旧库 ~100张表"]
        B1[药品目录]
        B2[订单系统]
        B3[处方系统]
        B4[用户系统]
        B5[门店系统]
        B6[医生系统]
        B7[支付系统]
        B8[物流系统]
    end

    API[xk-api] --> A1
    API --> A2
    API --> A3
    API --> B1
    API --> B2
    API --> B3
    API --> B4
    API --> B5

::: warning 跨库约束

  • 新库和旧库之间不允许 JOIN 查询
  • 需要跨库关联时使用两步查询
  • 定时任务中需要特别注意数据一致性 :::

表活跃状态

z_xk (新库) — 全部活跃

所有 67 张表均在当前系统中使用。

z_o_xk (旧库) — 部分活跃

状态 表数量 说明
仍在使用 ~40 张 药品、订单、处方、用户、门店、医生、支付等核心表
已废弃 ~60 张 旧配置表、旧 IM 表、旧日志表、旧迁移表等

仍在使用的核心表 (z_o_xk)

表名 说明 使用方
yii_drug 药品目录 xk-api, xk-admin
yii_drug_store_relations 药品-门店定价 xk-api, xk-admin
yii_drug_categories 药品分类 xk-api, xk-admin
yii_drug_nature 药品配伍 xk-api
yii_product_order 产品订单 xk-api, xk-admin
yii_product_order_items 订单明细 xk-api, xk-admin
yii_register 挂号订单 xk-api, xk-admin
yii_prescription 主处方表 xk-api, xk-admin, xk-doctor-wx
yii_prescription_chinese 中药处方 xk-api, xk-doctor-wx
yii_prescription_west 西药处方 xk-api, xk-doctor-wx
yii_prescription_granular 颗粒处方 xk-api, xk-doctor-wx
yii_prescription_server 服务包处方 xk-api, xk-doctor-wx
yii_user 用户表 xk-api, xk-client-wx
yii_user_patient 就诊人 xk-api, xk-client-wx
yii_store 门店表 xk-api, xk-admin, xk-doctor-wx
yii_doctor_info 医生信息 xk-api, xk-admin, xk-doctor-wx
yii_doctor_service 医生服务设置 xk-api, xk-doctor-wx
yii_pharmacist_info 药师信息 xk-api, xk-admin, xk-doctor-wx
yii_service_user 服务用户 xk-api
yii_payment_order 咨询支付 xk-api
yii_payment_product_order 产品支付 xk-api
yii_payment_register 挂号支付 xk-api
yii_ledger 分账记录 xk-api, xk-admin
yii_fund_water 资金流水 xk-api, xk-admin
yii_cash_account 提现账户 xk-api, xk-admin
yii_cash_apply 提现申请 xk-api, xk-admin
yii_reconciliation 对账记录 xk-api, xk-admin
yii_order 咨询订单 xk-api
yii_order_refund 咨询退款 xk-api
yii_product_order_refund 产品退款 xk-api
yii_register_refund 挂号退款 xk-api
yii_transfer_prescription 转诊处方 xk-api, xk-admin
yii_chinese_recipe 中药处方笺 xk-api
yii_west_recipe 西药处方笺 xk-api
yii_granular_recipe 颗粒处方笺 xk-api
yii_im_message IM 消息 xk-api
yii_im_message_session IM 会话 xk-api
yii_examine_log 药师审核记录 xk-api
yii_reviewer 审方人 xk-api
yii_region 地区 xk-api, xk-admin
yii_express_nos 快递单号 xk-api
yii_express_companies 快递公司 xk-api, xk-admin

数据库设计规范

表命名

  • 新表:xk_ 前缀 + 业务域 + 功能名(如 xk_salesperson_commission_record
  • 旧表:yii_ 前缀Yii2 框架约定)

字段命名

  • 主键:id(自增 bigint
  • 时间戳:created_at, updated_at
  • 软删除:deleted_at
  • 外键:{关联表名}_id(如 store_id, user_id
  • 状态字段:status(使用枚举值)

索引设计

  • 主键索引:id
  • 唯一索引:uk_ 前缀(如 uk_order_item_sp_type
  • 普通索引:idx_ 前缀(如 idx_store_id
  • 联合索引:多字段组合(如 idx_anchor_step

数据类型

  • 金额:decimal(10,2)decimal(12,2)
  • 大文本:textmediumtext
  • JSONjsontext(存储 JSON 字符串)
  • 状态/类型:tinyintint
  • 手机号:varchar(20)
  • 银行卡:varchar(30)

ER 关系图

核心业务关系

erDiagram
    yii_user ||--o{ yii_user_patient : "拥有"
    yii_user ||--o{ yii_product_order : "下单"
    yii_user ||--o{ yii_register : "挂号"
    yii_user ||--o{ yii_order : "问诊"

    yii_store ||--o{ yii_product_order : "归属"
    yii_store ||--o{ yii_register : "归属"
    yii_store ||--o{ yii_drug_store_relations : "定价"

    yii_doctor_info ||--o{ yii_prescription : "开方"
    yii_doctor_info ||--o{ yii_order : "接诊"
    yii_doctor_info ||--o{ yii_register : "接诊"

    yii_prescription ||--o{ yii_prescription_chinese : "中药"
    yii_prescription ||--o{ yii_prescription_west : "西药"
    yii_prescription ||--o{ yii_prescription_granular : "颗粒"

    yii_product_order ||--o{ yii_product_order_items : "明细"
    yii_product_order ||--o{ yii_payment_product_order : "支付"
    yii_product_order ||--o{ yii_product_order_refund : "退款"
    yii_product_order ||--o{ yii_ledger : "分账"

    yii_register ||--o{ yii_payment_register : "支付"
    yii_register ||--o{ yii_register_refund : "退款"

    xk_clinic_salesperson ||--o{ xk_salesperson_commission_record : "佣金"
    xk_salesperson_commission_record ||--o{ xk_salesperson_settlement_record : "结算"
    xk_salesperson_settlement ||--o{ xk_salesperson_settlement_record : "包含"