# member_balance_changes 会员余额变更流水

> 生成时间：2026-02-14

## 表信息

| 属性 | 值 |
|------|-----|
| Schema | ods |
| 表名 | member_balance_changes |
| 主键 | id, content_hash |
| 数据来源 | export/test-json-doc/member_balance_changes.json |
| 说明 | 会员余额变更流水 |

## 字段说明

| 序号 | 字段名 | 类型 | 可空 | 说明 |
|------|--------|------|------|------|
| 1 | tenant_id | BIGINT | YES | 租户/商户 ID，本数据中是固定值（同一品牌/商户） |
| 2 | site_id | BIGINT | YES | 非 0：记录所属的具体门店 ID（与其他 JSON 内的 site_id 一致） |
| 3 | register_site_id | BIGINT | YES | 会员卡的“注册门店 ID”，即办卡所在门店 |
| 4 | registersitename | TEXT | YES | （待补充） |
| 5 | paysitename | TEXT | YES | （待补充） |
| 6 | id | BIGINT | NO | 余额变更记录的主键 ID，唯一标识这一条“账户余额变化事件” |
| 7 | tenant_member_id | BIGINT | YES | 商户维度的会员 ID（租户内会员主键） |
| 8 | tenant_member_card_id | BIGINT | YES | 会员卡账户 ID，在租户内唯一标识某张卡 |
| 9 | system_member_id | BIGINT | YES | 系统级（全局）会员 ID |
| 10 | membername | TEXT | YES | （待补充） |
| 11 | membermobile | TEXT | YES | （待补充） |
| 12 | card_type_id | BIGINT | YES | 卡种类型 ID，用于区分不同卡种 |
| 13 | membercardtypename | TEXT | YES | （待补充） |
| 14 | account_data | NUMERIC(18,2) | YES | 本次变动的金额（元），正数表示增加，负数表示减少 |
| 15 | before | NUMERIC(18,2) | YES | 本次变动前，该卡账户的余额（元） |
| 16 | after | NUMERIC(18,2) | YES | 本次变动后，该卡账户的余额（元） |
| 17 | refund_amount | NUMERIC(18,2) | YES | 可能用于标记“其中有多少金额是以‘退款’形式回流的”，或区分“退回余额”和“原路退回”两种模式 |
| 18 | from_type | INTEGER | YES | 来自 JSON 导出的原始字段，用于保留业务取值 |
| 19 | payment_method | INTEGER | YES | 来自 JSON 导出的原始字段，用于保留业务取值 |
| 20 | relate_id | BIGINT | YES | 例如某次充值记录的 ID、某张订单/结算单 ID、某次活动抵用券核销记录 ID 等 |
| 21 | remark | TEXT | YES | 当为空时，说明这条变动没有额外备注说明 |
| 22 | operator_id | BIGINT | YES | 执行此次余额变更操作的员工 ID |
| 23 | operator_name | TEXT | YES | 操作员姓名（带职位前缀），是对 operator_id 的可读冗余字段 |
| 24 | is_delete | INTEGER | YES | 逻辑删除标记（0=否，1=是） |
| 25 | create_time | TIMESTAMP | YES | 本条余额变更记录的创建时间，通常接近交易发生时间 |
| 26 | source_file | TEXT | YES | ETL 元数据：原始导出文件名，用于数据追溯 |
| 27 | source_endpoint | TEXT | YES | ETL 元数据：采集来源（接口/文件路径），用于数据追溯 |
| 28 | fetched_at | TIMESTAMPTZ | YES | ETL 元数据：采集/入库时间戳，用于口径对齐与增量处理 |
| 29 | payload | JSONB | NO | ETL 元数据：完整原始 JSON 记录快照，用于回溯与二次解析 |
| 30 | content_hash | TEXT | NO | ETL 元数据：对业务字段计算 SHA256，用于变更检测与去重 |
| 31 | principal_after | NUMERIC(18,2) | YES | 变动后本金 |
| 32 | principal_before | NUMERIC(18,2) | YES | 变动前本金 |
| 33 | principal_data | TEXT | YES | 本金变动数据 |

## 使用说明

```sql
-- 查询最新入库的记录
SELECT * FROM ods.member_balance_changes
ORDER BY fetched_at DESC
LIMIT 10;
```

```sql
-- 按业务主键查询某条记录的所有版本
SELECT * FROM ods.member_balance_changes
WHERE id = <value>
ORDER BY fetched_at DESC;
```

## ETL 元数据字段

| 字段名 | 类型 | 说明 |
|--------|------|------|
| content_hash | TEXT | 对业务字段计算 SHA256，用于变更检测与去重 |
| source_file | TEXT | 原始导出文件名，用于数据追溯 |
| source_endpoint | TEXT | 采集来源（接口/文件路径），用于数据追溯 |
| fetched_at | TIMESTAMPTZ | 采集/入库时间戳，用于口径对齐与增量处理 |
| payload | JSONB | 完整原始 JSON 记录快照，用于回溯与二次解析 |

## 可回溯性

| 项目 | 说明 |
|------|------|
| 可回溯 | ✅ 完全可回溯（保留 payload 原始 JSON） |
| 数据来源 | export/test-json-doc/member_balance_changes.json |
