Files
feiqiu-ETL/etl_billiards/docs/dwd_main_tables_dictionary.md
2026-01-18 22:37:38 +08:00

1251 lines
112 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DWD 主表(非 Ex表格说明书
- 来源:`etl_billiards/database/schema_dwd_doc.sql`
- 范围:仅包含“主表”(表名不含 `_Ex`/`_EX``CREATE TABLE`);扩展字段见同名 `_Ex`
- 目的:二次数据清洗/建模的字段口径、来源与可连接关系参考
- 关联(推断)列规则:仅按“字段名 = 其他表主键字段名”推断可 join 关系DWD 未声明外键,需结合业务确认
## 表清单
| 表名 | 类型 | 主键 | 表说明 |
|---|---|---|---|
| `dim_assistant` | 维度 | assistant_id | DWD 维度表dim_assistant。ODS 来源表billiards_ods.assistant_accounts_master对应 JSONassistant_accounts_master.json分析assistant_accounts_master-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dim_goods_category` | 维度 | category_id | DWD 维度表dim_goods_category。ODS 来源表billiards_ods.stock_goods_category_tree对应 JSONstock_goods_category_tree.json分析stock_goods_category_tree-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dim_groupbuy_package` | 维度 | groupbuy_package_id | DWD 维度表dim_groupbuy_package。ODS 来源表billiards_ods.group_buy_packages对应 JSONgroup_buy_packages.json分析group_buy_packages-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dim_member` | 维度 | member_id | DWD 维度表dim_member。ODS 来源表billiards_ods.member_profiles对应 JSONmember_profiles.json分析member_profiles-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dim_member_card_account` | 维度 | member_card_id | DWD 维度表dim_member_card_account。ODS 来源表billiards_ods.member_stored_value_cards对应 JSONmember_stored_value_cards.json分析member_stored_value_cards-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dim_site` | 维度 | site_id | DWD 维度表dim_site。ODS 来源表billiards_ods.table_fee_transactions对应 JSONtable_fee_transactions.json分析table_fee_transactions-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dim_store_goods` | 维度 | site_goods_id | DWD 维度表dim_store_goods。ODS 来源表billiards_ods.store_goods_master对应 JSONstore_goods_master.json分析store_goods_master-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dim_table` | 维度 | table_id | DWD 维度表dim_table。ODS 来源表billiards_ods.site_tables_master对应 JSONsite_tables_master.json分析site_tables_master-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dim_tenant_goods` | 维度 | tenant_goods_id | DWD 维度表dim_tenant_goods。ODS 来源表billiards_ods.tenant_goods_master对应 JSONtenant_goods_master.json分析tenant_goods_master-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_assistant_service_log` | 事实/明细 | assistant_service_id | DWD 明细事实表dwd_assistant_service_log。ODS 来源表billiards_ods.assistant_service_records对应 JSONassistant_service_records.json分析assistant_service_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_assistant_trash_event` | 事实/明细 | assistant_trash_event_id | DWD 明细事实表dwd_assistant_trash_event。ODS 来源表billiards_ods.assistant_cancellation_records对应 JSONassistant_cancellation_records.json分析assistant_cancellation_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_groupbuy_redemption` | 事实/明细 | redemption_id | DWD 明细事实表dwd_groupbuy_redemption。ODS 来源表billiards_ods.group_buy_redemption_records对应 JSONgroup_buy_redemption_records.json分析group_buy_redemption_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_member_balance_change` | 事实/明细 | balance_change_id | DWD 明细事实表dwd_member_balance_change。ODS 来源表billiards_ods.member_balance_changes对应 JSONmember_balance_changes.json分析member_balance_changes-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_payment` | 事实/明细 | payment_id | DWD 明细事实表dwd_payment。ODS 来源表billiards_ods.payment_transactions对应 JSONpayment_transactions.json分析payment_transactions-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_platform_coupon_redemption` | 事实/明细 | platform_coupon_redemption_id | DWD 明细事实表dwd_platform_coupon_redemption。ODS 来源表billiards_ods.platform_coupon_redemption_records对应 JSONplatform_coupon_redemption_records.json分析platform_coupon_redemption_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_recharge_order` | 事实/明细 | recharge_order_id | DWD 明细事实表dwd_recharge_order。ODS 来源表billiards_ods.recharge_settlements对应 JSONrecharge_settlements.json分析recharge_settlements-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_refund` | 事实/明细 | refund_id | DWD 明细事实表dwd_refund。ODS 来源表billiards_ods.refund_transactions对应 JSONrefund_transactions.json分析refund_transactions-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_settlement_head` | 事实/明细 | order_settle_id | DWD 明细事实表dwd_settlement_head。ODS 来源表billiards_ods.settlement_records对应 JSONsettlement_records.json分析settlement_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_store_goods_sale` | 事实/明细 | store_goods_sale_id | DWD 明细事实表dwd_store_goods_sale。ODS 来源表billiards_ods.store_goods_sales_records对应 JSONstore_goods_sales_records.json分析store_goods_sales_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_table_fee_adjust` | 事实/明细 | table_fee_adjust_id | DWD 明细事实表dwd_table_fee_adjust。ODS 来源表billiards_ods.table_fee_discount_records对应 JSONtable_fee_discount_records.json分析table_fee_discount_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
| `dwd_table_fee_log` | 事实/明细 | table_fee_log_id | DWD 明细事实表dwd_table_fee_log。ODS 来源表billiards_ods.table_fee_transactions对应 JSONtable_fee_transactions.json分析table_fee_transactions-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask。 |
## `dim_assistant`
- 表说明DWD 维度表dim_assistant。ODS 来源表billiards_ods.assistant_accounts_master对应 JSONassistant_accounts_master.json分析assistant_accounts_master-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键assistant_id
- 类型:维度
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `assistant_id` | BIGINT | Y | | 助教账号主键 ID在“助教流水.json”中对应 site_assistant_id。用途所有与助教相关的事实表助教流水、助教排班等都会通过这个 ID 关联到该维表;用于跨表关联与去重。 | assistant_accounts_master - id。 | assistant_accounts_master.json - data.assistantInfos - id。 |
| `user_id` | BIGINT | | | 预留给“人事系统员工 ID”的字段目前未接入或未启用用于跨表关联与去重。 | assistant_accounts_master - staff_id。 | assistant_accounts_master.json - data.assistantInfos - staff_id。 |
| `assistant_no` | TEXT | | | 助教工号 / 编号,便于业务侧识别。;关联:在“助教流水.json”中有 assistantNo与此字段对应。 | assistant_accounts_master - assistant_no。 | assistant_accounts_master.json - data.assistantInfos - assistant_no。 |
| `real_name` | TEXT | | | 助教真实姓名,如“何海婷”“梁婷婷”等。;关联:在“助教流水.json”的 assistantName 与此一致。 | assistant_accounts_master - real_name。 | assistant_accounts_master.json - data.assistantInfos - real_name。 |
| `nickname` | TEXT | | | 助教在前台展示的昵称,如“佳怡”“周周”“球球”等。 | assistant_accounts_master - nickname。 | assistant_accounts_master.json - data.assistantInfos - nickname。 |
| `mobile` | TEXT | | | 助教手机号,用于登录绑定、通知、钉钉同步等。 | assistant_accounts_master - mobile。 | assistant_accounts_master.json - data.assistantInfos - mobile。 |
| `tenant_id` | BIGINT | | | 品牌/租户 ID对应“非球科技”系统中该商户的唯一标识用途多租户数据隔离与按租户汇总。 | assistant_accounts_master - tenant_id。 | assistant_accounts_master.json - data.assistantInfos - tenant_id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID对应本次数据的这家球房朗朗桌球关联与其它 JSON台费流水、库存、销售等中的 site_id 一致;用途:门店维度分组、计营业额、与门店档案关联。 | assistant_accounts_master - site_id。 | assistant_accounts_master.json - data.assistantInfos - site_id。 |
| `team_id` | BIGINT | | | 助教所属团队 ID。关联在“助教流水.json”中 assistant_team_id 与此一致;用于跨表关联与去重。 | assistant_accounts_master - team_id。 | assistant_accounts_master.json - data.assistantInfos - team_id。 |
| `team_name` | TEXT | | | 团队名称,展示用,和 team_id 一一对应。 | assistant_accounts_master - team_name。 | assistant_accounts_master.json - data.assistantInfos - team_name。 |
| `level` | INTEGER | | | 8助教管理/管理员(和流水里的 "助教管理" 对应);关联:在“助教流水.json”里以 assistant_level+levelName 体现。 | assistant_accounts_master - level。 | assistant_accounts_master.json - data.assistantInfos - level。 |
| `entry_time` | TIMESTAMPTZ | | | 入职时间。 | assistant_accounts_master - entry_time。 | assistant_accounts_master.json - data.assistantInfos - entry_time。 |
| `resign_time` | TIMESTAMPTZ | | | 离职日期;使用“远未来日期”作为“未离职”的占位。 | assistant_accounts_master - resign_time。 | assistant_accounts_master.json - data.assistantInfos - resign_time。 |
| `leave_status` | INTEGER | | | 业务状态/类型字段,用于过滤、分类与统计口径区分。 | assistant_accounts_master - leave_status。 | assistant_accounts_master.json - data.assistantInfos - leave_status。 |
| `assistant_status` | INTEGER | | | 账号启用状态:。 | assistant_accounts_master - assistant_status。 | assistant_accounts_master.json - data.assistantInfos - assistant_status。 |
| `SCD2_start_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本生效起始时间,用于历史追踪。 | | |
| `SCD2_end_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本失效时间(默认 9999-12-31 表示当前版本),用于历史追踪。 | | |
| `SCD2_is_current` | INT | | | 维度慢变(SCD2)当前版本标记1=当前),用于筛选最新维度记录。 | | |
| `SCD2_version` | INT | | | 维度慢变(SCD2)版本号(自增),用于区分历史版本。 | | |
## `dim_goods_category`
- 表说明DWD 维度表dim_goods_category。ODS 来源表billiards_ods.stock_goods_category_tree对应 JSONstock_goods_category_tree.json分析stock_goods_category_tree-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键category_id
- 类型:维度
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `category_id` | BIGINT | Y | | 分类节点主键 ID在商品分类维度中的唯一标识用于跨表关联与去重。 | stock_goods_category_tree - id。 | stock_goods_category_tree.json - data.goodsCategoryList - id。 |
| `tenant_id` | BIGINT | | | 租户 ID品牌/商户 ID用途多租户数据隔离与按租户汇总。 | stock_goods_category_tree - tenant_id。 | stock_goods_category_tree.json - data.goodsCategoryList - tenant_id。 |
| `category_name` | VARCHAR(50) | | | 分类名称(实际业务分类名称)。 | stock_goods_category_tree - category_name。 | stock_goods_category_tree.json - data.goodsCategoryList - category_name。 |
| `alias_name` | VARCHAR(50) | | | 预留的“别名”字段,可用于:。 | stock_goods_category_tree - alias_name。 | stock_goods_category_tree.json - data.goodsCategoryList - alias_name。 |
| `parent_category_id` | BIGINT | | | 父级分类 ID用于跨表关联与去重。 | stock_goods_category_tree - pid。 | stock_goods_category_tree.json - data.goodsCategoryList - pid。 |
| `business_name` | VARCHAR(50) | | | 业务大类名称。 | stock_goods_category_tree - business_name。 | stock_goods_category_tree.json - data.goodsCategoryList - business_name。 |
| `tenant_goods_business_id` | BIGINT | | | 业务大类 ID用于跨表关联与去重。 | stock_goods_category_tree - tenant_goods_business_id。 | stock_goods_category_tree.json - data.goodsCategoryList - tenant_goods_business_id。 |
| `category_level` | INTEGER | | | 业务明细字段,用于补充该记录的业务属性。 | stock_goods_category_tree - CASE WHEN pid = 0 THEN 1 ELSE 2 END。 | stock_goods_category_tree.json - data.goodsCategoryList - CASE WHEN pid = 0 THEN 1 ELSE 2 END。 |
| `is_leaf` | INTEGER | | | 业务状态/类型字段,用于过滤、分类与统计口径区分。 | stock_goods_category_tree - CASE WHEN categoryboxes IS NULL OR jsonb_array_length(categoryboxes)=0 THEN 1 ELSE 0 END。 | stock_goods_category_tree.json - data.goodsCategoryList - CASE WHEN categoryboxes IS NULL OR jsonb_array_length(categoryboxes)=0 THEN 1 ELSE 0 END。 |
| `open_salesman` | INTEGER | | | 是否启用“营业员”或“导购提成”相关的功能开关。 | stock_goods_category_tree - open_salesman。 | stock_goods_category_tree.json - data.goodsCategoryList - open_salesman。 |
| `sort_order` | INTEGER | | | 分类的排序序号,用于前端展示顺序的控制。 | stock_goods_category_tree - sort。 | stock_goods_category_tree.json - data.goodsCategoryList - sort。 |
| `is_warehousing` | INTEGER | | | 是否“走库存 / 参与仓储管理”:。 | stock_goods_category_tree - is_warehousing。 | stock_goods_category_tree.json - data.goodsCategoryList - is_warehousing。 |
| `SCD2_start_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本生效起始时间,用于历史追踪。 | | |
| `SCD2_end_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本失效时间(默认 9999-12-31 表示当前版本),用于历史追踪。 | | |
| `SCD2_is_current` | INT | | | 维度慢变(SCD2)当前版本标记1=当前),用于筛选最新维度记录。 | | |
| `SCD2_version` | INT | | | 维度慢变(SCD2)版本号(自增),用于区分历史版本。 | | |
## `dim_groupbuy_package`
- 表说明DWD 维度表dim_groupbuy_package。ODS 来源表billiards_ods.group_buy_packages对应 JSONgroup_buy_packages.json分析group_buy_packages-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键groupbuy_package_id
- 类型:维度
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `groupbuy_package_id` | BIGINT | Y | | 门店侧套餐 ID本文件内部的主键。关联平台验券记录表中常见 group_package_id 字段,通常会指向这里的 id平台券核销记录指向哪一个团购套餐配置用于跨表关联与去重。 | group_buy_packages - id。 | group_buy_packages.json - data.packageCouponList - id。 |
| `tenant_id` | BIGINT | | | 租户 ID品牌/商户 ID用途多租户数据隔离与按租户汇总。 | group_buy_packages - tenant_id。 | group_buy_packages.json - data.packageCouponList - tenant_id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID用途门店维度分组、计营业额、与门店档案关联。 | group_buy_packages - site_id。 | group_buy_packages.json - data.packageCouponList - site_id。 |
| `package_name` | VARCHAR(200) | | | 团购套餐名称,用于前台展示和核销界面。 | group_buy_packages - package_name。 | group_buy_packages.json - data.packageCouponList - package_name。 |
| `package_template_id` | BIGINT | | | “上层套餐 ID” 或“总部/系统级套餐 ID”用于跨表关联与去重。 | group_buy_packages - package_id。 | group_buy_packages.json - data.packageCouponList - package_id。 |
| `selling_price` | NUMERIC(10,2) | | | 语义上应该是“团购售卖价”(顾客在平台购买券时的成交价格)。 | group_buy_packages - selling_price。 | group_buy_packages.json - data.packageCouponList - selling_price。 |
| `coupon_face_value` | NUMERIC(10,2) | | | 券面值或内部结算面值,表示该套餐在门店侧对应的金额额度。 | group_buy_packages - coupon_money。 | group_buy_packages.json - data.packageCouponList - coupon_money。 |
| `duration_seconds` | INTEGER | | | 套餐内包含的时长(秒)。 | group_buy_packages - duration。 | group_buy_packages.json - data.packageCouponList - duration。 |
| `start_time` | TIMESTAMPTZ | | | 套餐开始生效的日期时间。 | group_buy_packages - start_time。 | group_buy_packages.json - data.packageCouponList - start_time。 |
| `end_time` | TIMESTAMPTZ | | | 套餐失效的日期时间(到这个时间点后不可使用)。 | group_buy_packages - end_time。 | group_buy_packages.json - data.packageCouponList - end_time。 |
| `table_area_name` | VARCHAR(100) | | | 套餐适用的“门店台区名称”,用于显示和筛选。 | group_buy_packages - table_area_name。 | group_buy_packages.json - data.packageCouponList - table_area_name。 |
| `is_enabled` | INTEGER | | | 启用状态。 | group_buy_packages - is_enabled。 | group_buy_packages.json - data.packageCouponList - is_enabled。 |
| `is_delete` | INTEGER | | | 逻辑删除标志;软删除/作废标记,分析通常需过滤为有效记录。 | group_buy_packages - is_delete。 | group_buy_packages.json - data.packageCouponList - is_delete。 |
| `create_time` | TIMESTAMPTZ | | | 该套餐在系统中创建的时间;记录源系统创建时间,用于增量同步和口径对齐。 | group_buy_packages - create_time。 | group_buy_packages.json - data.packageCouponList - create_time。 |
| `tenant_table_area_id_list` | VARCHAR(512) | | | 实际代表“台区集合 ID”或“租户台区配置 ID”用来限制套餐可用的台区范围。 | group_buy_packages - tenant_table_area_id_list。 | group_buy_packages.json - data.packageCouponList - tenant_table_area_id_list。 |
| `card_type_ids` | VARCHAR(255) | | | 原意是“适用会员卡类型 ID 列表”,例如某套餐只允许某几种会员卡使用,可以在此配置。 | group_buy_packages - card_type_ids。 | group_buy_packages.json - data.packageCouponList - card_type_ids。 |
| `SCD2_start_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本生效起始时间,用于历史追踪。 | | |
| `SCD2_end_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本失效时间(默认 9999-12-31 表示当前版本),用于历史追踪。 | | |
| `SCD2_is_current` | INT | | | 维度慢变(SCD2)当前版本标记1=当前),用于筛选最新维度记录。 | | |
| `SCD2_version` | INT | | | 维度慢变(SCD2)版本号(自增),用于区分历史版本。 | | |
## `dim_member`
- 表说明DWD 维度表dim_member。ODS 来源表billiards_ods.member_profiles对应 JSONmember_profiles.json分析member_profiles-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键member_id
- 类型:维度
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `member_id` | BIGINT | Y | | 这是“租户内会员账户”的主键 ID用于跨表关联与去重。 | member_profiles - id。 | member_profiles.json - data.tenantMemberInfos - id。 |
| `system_member_id` | BIGINT | | | 这是“系统级会员 ID”在全平台唯一用来把一个会员在不同门店/不同卡类型下的账户统一到一个“人”的维度上;用于跨表关联与去重。 | member_profiles - system_member_id。 | member_profiles.json - data.tenantMemberInfos - system_member_id。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID用途多租户数据隔离与按租户汇总。 | member_profiles - tenant_id。 | member_profiles.json - data.tenantMemberInfos - tenant_id。 |
| `register_site_id` | BIGINT | | | 会员的注册门店 ID用于跨表关联与去重。 | member_profiles - register_site_id。 | member_profiles.json - data.tenantMemberInfos - register_site_id。 |
| `mobile` | TEXT | | | 会员绑定的手机号码;手机号码,用于账户/会员识别、查询与联系。 | member_profiles - mobile。 | member_profiles.json - data.tenantMemberInfos - mobile。 |
| `nickname` | TEXT | | | 会员在当前租户下的显示名称(可以是姓名,也可以是昵称)。 | member_profiles - nickname。 | member_profiles.json - data.tenantMemberInfos - nickname。 |
| `member_card_grade_code` | BIGINT | | | 业务明细字段,用于补充该记录的业务属性。 | member_profiles - member_card_grade_code。 | member_profiles.json - data.tenantMemberInfos - member_card_grade_code。 |
| `member_card_grade_name` | TEXT | | | 这是“会员卡种类/等级”的定义字段。 | member_profiles - member_card_grade_name。 | member_profiles.json - data.tenantMemberInfos - member_card_grade_name。 |
| `create_time` | TIMESTAMPTZ | | | 会员账户的创建时间(即这条档案/这张卡在系统中被创建的时间);记录源系统创建时间,用于增量同步和口径对齐。 | member_profiles - create_time。 | member_profiles.json - data.tenantMemberInfos - create_time。 |
| `update_time` | TIMESTAMPTZ | | | 记录源系统更新时间,用于增量同步与变更追踪。 | member_profiles - update_time。 | member_profiles.json - data.tenantMemberInfos - update_time。 |
| `SCD2_start_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本生效起始时间,用于历史追踪。 | | |
| `SCD2_end_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本失效时间(默认 9999-12-31 表示当前版本),用于历史追踪。 | | |
| `SCD2_is_current` | INT | | | 维度慢变(SCD2)当前版本标记1=当前),用于筛选最新维度记录。 | | |
| `SCD2_version` | INT | | | 维度慢变(SCD2)版本号(自增),用于区分历史版本。 | | |
## `dim_member_card_account`
- 表说明DWD 维度表dim_member_card_account。ODS 来源表billiards_ods.member_stored_value_cards对应 JSONmember_stored_value_cards.json分析member_stored_value_cards-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键member_card_id
- 类型:维度
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `member_card_id` | BIGINT | Y | | 会员卡 ID源系统唯一标识用于跨表关联、去重与维度汇总。 | member_stored_value_cards - id。 | member_stored_value_cards.json - data.tenantMemberCards - id。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID与其他 JSON 中 tenant_id 一致;用途:多租户数据隔离与按租户汇总。 | member_stored_value_cards - tenant_id。 | member_stored_value_cards.json - data.tenantMemberCards - tenant_id。 |
| `register_site_id` | BIGINT | | | 卡首次办理的门店 ID用于跨表关联与去重。 | member_stored_value_cards - register_site_id。 | member_stored_value_cards.json - data.tenantMemberCards - register_site_id。 |
| `tenant_member_id` | BIGINT | | | 当前商户(品牌/租户)中会员的主键 ID用于跨表关联与去重。 | member_stored_value_cards - tenant_member_id。 | member_stored_value_cards.json - data.tenantMemberCards - tenant_member_id。 |
| `system_member_id` | BIGINT | | | 系统级会员 ID跨门店统一主键用于跨表关联与去重。 | member_stored_value_cards - system_member_id。 | member_stored_value_cards.json - data.tenantMemberCards - system_member_id。 |
| `card_type_id` | BIGINT | | | 卡种 ID定义“这是哪一种卡”用于跨表关联与去重。 | member_stored_value_cards - card_type_id。 | member_stored_value_cards.json - data.tenantMemberCards - card_type_id。 |
| `member_card_grade_code` | BIGINT | | | 卡等级/卡类代码,和下面两个名称字段一一对应。 | member_stored_value_cards - member_card_grade_code。 | member_stored_value_cards.json - data.tenantMemberCards - member_card_grade_code。 |
| `member_card_grade_code_name` | TEXT | | | 卡等级/卡类名称。 | member_stored_value_cards - member_card_grade_code_name。 | member_stored_value_cards.json - data.tenantMemberCards - member_card_grade_code_name。 |
| `member_card_type_name` | TEXT | | | 卡类型名称,实际与 member_card_grade_code_name 一致。 | member_stored_value_cards - member_card_type_name。 | member_stored_value_cards.json - data.tenantMemberCards - member_card_type_name。 |
| `member_name` | TEXT | | | 持卡会员姓名快照。 | member_stored_value_cards - member_name。 | member_stored_value_cards.json - data.tenantMemberCards - member_name。 |
| `member_mobile` | TEXT | | | 持卡会员手机号快照;手机号码,用于账户/会员识别、查询与联系。 | member_stored_value_cards - member_mobile。 | member_stored_value_cards.json - data.tenantMemberCards - member_mobile。 |
| `balance` | NUMERIC(18,2) | | | 当前卡内余额(主要针对储值卡、部分券卡)。 | member_stored_value_cards - balance。 | member_stored_value_cards.json - data.tenantMemberCards - balance。 |
| `start_time` | TIMESTAMPTZ | | | 卡片生效开始时间(有效期起始)。 | member_stored_value_cards - start_time。 | member_stored_value_cards.json - data.tenantMemberCards - start_time。 |
| `end_time` | TIMESTAMPTZ | | | 卡片有效期结束时间。 | member_stored_value_cards - end_time。 | member_stored_value_cards.json - data.tenantMemberCards - end_time。 |
| `last_consume_time` | TIMESTAMPTZ | | | 最近一次消费时间。 | member_stored_value_cards - last_consume_time。 | member_stored_value_cards.json - data.tenantMemberCards - last_consume_time。 |
| `status` | INTEGER | | | 1正常可用。 | member_stored_value_cards - status。 | member_stored_value_cards.json - data.tenantMemberCards - status。 |
| `is_delete` | INTEGER | | | 逻辑删除标志;软删除/作废标记,分析通常需过滤为有效记录。 | member_stored_value_cards - is_delete。 | member_stored_value_cards.json - data.tenantMemberCards - is_delete。 |
| `SCD2_start_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本生效起始时间,用于历史追踪。 | | |
| `SCD2_end_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本失效时间(默认 9999-12-31 表示当前版本),用于历史追踪。 | | |
| `SCD2_is_current` | INT | | | 维度慢变(SCD2)当前版本标记1=当前),用于筛选最新维度记录。 | | |
| `SCD2_version` | INT | | | 维度慢变(SCD2)版本号(自增),用于区分历史版本。 | | |
## `dim_site`
- 表说明DWD 维度表dim_site。ODS 来源表billiards_ods.table_fee_transactions对应 JSONtable_fee_transactions.json分析table_fee_transactions-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键site_id
- 类型:维度
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `site_id` | BIGINT | Y | | 门店 ID本次数据全部来自同一门店朗朗桌球关联与 siteProfile.id 一致;用途:门店维度分组、计营业额、与门店档案关联。 | table_fee_transactions - site_id。 | table_fee_transactions.json - data.siteTableUseDetailsList - site_id。 |
| `org_id` | BIGINT | | | 组织/机构 ID用于组织维度归属和管理聚合。 | table_fee_transactions - siteProfile.org_id。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - org_id。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID。本文件所有记录都属于同一租户。关联与所有其它 JSON 中的 tenant_id 一致,用于跨表做“商户维度”的过滤。 | table_fee_transactions - siteProfile.tenant_id。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - tenant_id。 |
| `shop_name` | TEXT | | | 名称字段,用于展示、检索与分组。 | table_fee_transactions - siteProfile.shop_name。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - shop_name。 |
| `site_label` | TEXT | | | 业务明细字段,用于补充该记录的业务属性。 | table_fee_transactions - siteProfile.site_label。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - site_label。 |
| `full_address` | TEXT | | | 业务明细字段,用于补充该记录的业务属性。 | table_fee_transactions - siteProfile.full_address。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - full_address。 |
| `address` | TEXT | | | 业务明细字段,用于补充该记录的业务属性。 | table_fee_transactions - siteProfile.address。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - address。 |
| `longitude` | NUMERIC(10,6) | | | 业务明细字段,用于补充该记录的业务属性。 | table_fee_transactions - siteProfile.longitude。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - longitude派生CAST(longitude AS numeric))。 |
| `latitude` | NUMERIC(10,6) | | | 业务明细字段,用于补充该记录的业务属性。 | table_fee_transactions - siteProfile.latitude。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - latitude派生CAST(latitude AS numeric))。 |
| `tenant_site_region_id` | BIGINT | | | 租户/品牌门店区域 ID源系统唯一标识用于跨表关联、去重与维度汇总。 | table_fee_transactions - siteProfile.tenant_site_region_id。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - tenant_site_region_id。 |
| `business_tel` | TEXT | | | 业务明细字段,用于补充该记录的业务属性。 | table_fee_transactions - siteProfile.business_tel。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - business_tel。 |
| `site_type` | INTEGER | | | 业务状态/类型字段,用于过滤、分类与统计口径区分。 | table_fee_transactions - siteProfile.site_type。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - site_type。 |
| `shop_status` | INTEGER | | | 业务状态/类型字段,用于过滤、分类与统计口径区分。 | table_fee_transactions - siteProfile.shop_status。 | table_fee_transactions.json - data.siteTableUseDetailsList.siteProfile - shop_status。 |
| `SCD2_start_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本生效起始时间,用于历史追踪。 | | |
| `SCD2_end_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本失效时间(默认 9999-12-31 表示当前版本),用于历史追踪。 | | |
| `SCD2_is_current` | INT | | | 维度慢变(SCD2)当前版本标记1=当前),用于筛选最新维度记录。 | | |
| `SCD2_version` | INT | | | 维度慢变(SCD2)版本号(自增),用于区分历史版本。 | | |
## `dim_store_goods`
- 表说明DWD 维度表dim_store_goods。ODS 来源表billiards_ods.store_goods_master对应 JSONstore_goods_master.json分析store_goods_master-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键site_goods_id
- 类型:维度
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `site_goods_id` | BIGINT | Y | | 门店商品 ID门店维度的商品主键用于跨表关联与去重。 | store_goods_master - id。 | store_goods_master.json - data.orderGoodsList - id。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID。同一品牌下多个门店共享一个 tenant_id用途多租户数据隔离与按租户汇总。 | store_goods_master - tenant_id。 | store_goods_master.json - data.orderGoodsList - tenant_id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID用途门店维度分组、计营业额、与门店档案关联。 | store_goods_master - site_id。 | store_goods_master.json - data.orderGoodsList - site_id。 |
| `tenant_goods_id` | BIGINT | | dim_tenant_goods(tenant_goods_id) | 租户/品牌维度的商品 ID相当于“全局商品 ID”用于跨表关联与去重。 | store_goods_master - tenant_goods_id。 | store_goods_master.json - data.orderGoodsList - tenant_goods_id。 |
| `goods_name` | TEXT | | | 商品名称,例如“合味道泡面”“地道肠”“麻将房茶位费”等。 | store_goods_master - goods_name。 | store_goods_master.json - data.orderGoodsList - goods_name。 |
| `goods_category_id` | BIGINT | | | 商品一级分类 ID用于跨表关联与去重。 | store_goods_master - goods_category_id。 | store_goods_master.json - data.orderGoodsList - goods_category_id。 |
| `goods_second_category_id` | BIGINT | | | 商品二级分类 ID用于跨表关联与去重。 | store_goods_master - goods_second_category_id。 | store_goods_master.json - data.orderGoodsList - goods_second_category_id。 |
| `category_level1_name` | TEXT | | | 一级分类名称,如“零食”“酒水”“服务费”等。 | store_goods_master - oneCategoryName。 | store_goods_master.json - data.orderGoodsList - oneCategoryName。 |
| `category_level2_name` | TEXT | | | 二级分类名称,如“面”“洋酒”“纸巾”等。 | store_goods_master - twoCategoryName。 | store_goods_master.json - data.orderGoodsList - twoCategoryName。 |
| `batch_stock_qty` | INTEGER | | | 当前可用库存数量(以 unit 为单位)。 | store_goods_master - stock。 | store_goods_master.json - data.orderGoodsList - stock。 |
| `sale_qty` | INTEGER | | | 在当前统计口径下的销售数量(总销量,单位同 unit。 | store_goods_master - sale_num。 | store_goods_master.json - data.orderGoodsList - sale_num。 |
| `total_sales_qty` | INTEGER | | | 累计销售数量。 | store_goods_master - total_sales。 | store_goods_master.json - data.orderGoodsList - total_sales。 |
| `sale_price` | NUMERIC(18,2) | | | 商品标准销售价(挂牌价),单位为元。 | store_goods_master - sale_price。 | store_goods_master.json - data.orderGoodsList - sale_price。 |
| `created_at` | TIMESTAMPTZ | | | 门店商品档案创建时间(商品在门店建立档案的时间点)。 | store_goods_master - create_time。 | store_goods_master.json - data.orderGoodsList - create_time。 |
| `updated_at` | TIMESTAMPTZ | | | 最后一次修改该商品档案的时间(包括价格调整、状态变更等)。 | store_goods_master - update_time。 | store_goods_master.json - data.orderGoodsList - update_time。 |
| `avg_monthly_sales` | NUMERIC(18,4) | | | 平均月销量(件/月),根据某个统计周期内的销售数据折算而来。 | store_goods_master - average_monthly_sales。 | store_goods_master.json - data.orderGoodsList - average_monthly_sales。 |
| `goods_state` | INTEGER | | | 业务状态/类型字段,用于过滤、分类与统计口径区分。 | store_goods_master - goods_state。 | store_goods_master.json - data.orderGoodsList - goods_state。 |
| `enable_status` | INTEGER | | | 1启用。用途控制商品档案是否参与任何业务库存、销售等。 | store_goods_master - enable_status。 | store_goods_master.json - data.orderGoodsList - enable_status。 |
| `send_state` | INTEGER | | | 1可销售/可下单。 | store_goods_master - send_state。 | store_goods_master.json - data.orderGoodsList - send_state。 |
| `is_delete` | INTEGER | | | 逻辑删除标志;软删除/作废标记,分析通常需过滤为有效记录。 | store_goods_master - is_delete。 | store_goods_master.json - data.orderGoodsList - is_delete。 |
| `SCD2_start_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本生效起始时间,用于历史追踪。 | | |
| `SCD2_end_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本失效时间(默认 9999-12-31 表示当前版本),用于历史追踪。 | | |
| `SCD2_is_current` | INT | | | 维度慢变(SCD2)当前版本标记1=当前),用于筛选最新维度记录。 | | |
| `SCD2_version` | INT | | | 维度慢变(SCD2)版本号(自增),用于区分历史版本。 | | |
## `dim_table`
- 表说明DWD 维度表dim_table。ODS 来源表billiards_ods.site_tables_master对应 JSONsite_tables_master.json分析site_tables_master-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键table_id
- 类型:维度
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `table_id` | BIGINT | Y | | 台桌主键 ID。用途这是“台”的全系统唯一标识是各类流水表引用的核心外键。关联与 台费流水.json 中的 site_table_id 一致;用于跨表关联与去重。 | site_tables_master - id。 | site_tables_master.json - data.siteTables - id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID。关联与各个流水表、siteProfile.id 一致,本数据全部属于“朗朗桌球”这一家门店;用途:门店维度分组、计营业额、与门店档案关联。 | site_tables_master - site_id。 | site_tables_master.json - data.siteTables - site_id。 |
| `table_name` | TEXT | | | 台号/台名称,用于前台操作界面展示,也出现在小票和各种流水中的 ledger_name 或 tableName 字段。 | site_tables_master - table_name。 | site_tables_master.json - data.siteTables - table_name。 |
| `site_table_area_id` | BIGINT | | | 门店维度的“台桌区域 ID”用于跨表关联与去重。 | site_tables_master - site_table_area_id。 | site_tables_master.json - data.siteTables - site_table_area_id。 |
| `site_table_area_name` | TEXT | | | 区域名称,用于前台展示和区域维度管理。 | site_tables_master - areaName。 | site_tables_master.json - data.siteTables - areaName。 |
| `tenant_table_area_id` | BIGINT | | | 门店维度的“台桌区域 ID”用于跨表关联与去重。 | site_tables_master - site_table_area_id。 | site_tables_master.json - data.siteTables - site_table_area_id。 |
| `table_price` | NUMERIC(18,2) | | | 设计上应为“台的基础单价”字段(例如按小时或按局单价)。 | site_tables_master - table_price。 | site_tables_master.json - data.siteTables - table_price。 |
| `SCD2_start_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本生效起始时间,用于历史追踪。 | | |
| `SCD2_end_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本失效时间(默认 9999-12-31 表示当前版本),用于历史追踪。 | | |
| `SCD2_is_current` | INT | | | 维度慢变(SCD2)当前版本标记1=当前),用于筛选最新维度记录。 | | |
| `SCD2_version` | INT | | | 维度慢变(SCD2)版本号(自增),用于区分历史版本。 | | |
## `dim_tenant_goods`
- 表说明DWD 维度表dim_tenant_goods。ODS 来源表billiards_ods.tenant_goods_master对应 JSONtenant_goods_master.json分析tenant_goods_master-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键tenant_goods_id
- 类型:维度
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `tenant_goods_id` | BIGINT | Y | | 商品档案主键 ID唯一标识一条商品。用途作为其他业务表销售明细、库存流水、门店商品表等的外键通常以 tenant_goods_id 或类似字段出现;用于跨表关联与去重。 | tenant_goods_master - id。 | tenant_goods_master.json - data.tenantGoodsList - id。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID。用途和其它 JSON 中的 tenant_id / tenantId 一致,用于区分不同商户(本次数据只包含同一租户)。 | tenant_goods_master - tenant_id。 | tenant_goods_master.json - data.tenantGoodsList - tenant_id。 |
| `supplier_id` | BIGINT | | | 供应商 ID用于关联到供应商档案。 | tenant_goods_master - supplier_id。 | tenant_goods_master.json - data.tenantGoodsList - supplier_id。 |
| `category_name` | VARCHAR(64) | | | 商品一级分类名称(业务可读)。 | tenant_goods_master - categoryName。 | tenant_goods_master.json - data.tenantGoodsList - categoryName。 |
| `goods_category_id` | BIGINT | | | 商品一级分类 ID用于跨表关联与去重。 | tenant_goods_master - goods_category_id。 | tenant_goods_master.json - data.tenantGoodsList - goods_category_id。 |
| `goods_second_category_id` | BIGINT | | | 商品二级分类 ID用于跨表关联与去重。 | tenant_goods_master - goods_second_category_id。 | tenant_goods_master.json - data.tenantGoodsList - goods_second_category_id。 |
| `goods_name` | VARCHAR(128) | | | 商品名称(前台展示名称)。 | tenant_goods_master - goods_name。 | tenant_goods_master.json - data.tenantGoodsList - goods_name。 |
| `goods_number` | VARCHAR(64) | | | 商品内部编码(自定义货号/系统货号)。 | tenant_goods_master - goods_number。 | tenant_goods_master.json - data.tenantGoodsList - goods_number。 |
| `unit` | VARCHAR(16) | | | 计量单位。 | tenant_goods_master - unit。 | tenant_goods_master.json - data.tenantGoodsList - unit。 |
| `market_price` | NUMERIC(18,2) | | | 商品标价 / 售价(标准销售单价)。 | tenant_goods_master - market_price。 | tenant_goods_master.json - data.tenantGoodsList - market_price。 |
| `goods_state` | INTEGER | | | 商品状态(上架/下架等)。 | tenant_goods_master - goods_state。 | tenant_goods_master.json - data.tenantGoodsList - goods_state。 |
| `create_time` | TIMESTAMPTZ | | | 商品档案创建时间;记录源系统创建时间,用于增量同步和口径对齐。 | tenant_goods_master - create_time。 | tenant_goods_master.json - data.tenantGoodsList - create_time。 |
| `update_time` | TIMESTAMPTZ | | | 商品档案最近一次修改时间;记录源系统更新时间,用于增量同步与变更追踪。 | tenant_goods_master - update_time。 | tenant_goods_master.json - data.tenantGoodsList - update_time。 |
| `is_delete` | INTEGER | | | 逻辑删除标志;软删除/作废标记,分析通常需过滤为有效记录。 | tenant_goods_master - is_delete。 | tenant_goods_master.json - data.tenantGoodsList - is_delete。 |
| `SCD2_start_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本生效起始时间,用于历史追踪。 | | |
| `SCD2_end_time` | TIMESTAMPTZ | | | 维度慢变(SCD2)版本失效时间(默认 9999-12-31 表示当前版本),用于历史追踪。 | | |
| `SCD2_is_current` | INT | | | 维度慢变(SCD2)当前版本标记1=当前),用于筛选最新维度记录。 | | |
| `SCD2_version` | INT | | | 维度慢变(SCD2)版本号(自增),用于区分历史版本。 | | |
## `dwd_assistant_service_log`
- 表说明DWD 明细事实表dwd_assistant_service_log。ODS 来源表billiards_ods.assistant_service_records对应 JSONassistant_service_records.json分析assistant_service_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键assistant_service_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `assistant_service_id` | BIGINT | Y | | 本条助教流水记录的主键 ID流水唯一标识用途在系统内部唯一定位这一条助教服务记录用于跨表关联与去重。 | assistant_service_records - id。 | assistant_service_records.json - data.orderAssistantDetails - id。 |
| `order_trade_no` | BIGINT | | | 订单交易号,整个订单层面的编号。;关联:与台费流水、门店销售记录、团购套餐流水等表中的同名字段是一致的,用于把 同一笔订单下的各类消费明细(台费/商品/助教/套餐)串起来。 | assistant_service_records - order_trade_no。 | assistant_service_records.json - data.orderAssistantDetails - order_trade_no。 |
| `order_settle_id` | BIGINT | | dwd_settlement_head(order_settle_id) | 订单结算 ID相当于“结账单号”的内部主键。关联与小票详情中的 orderSettleId 对应;用于跨表关联与去重。 | assistant_service_records - order_settle_id。 | assistant_service_records.json - data.orderAssistantDetails - order_settle_id。 |
| `order_pay_id` | BIGINT | | | 关联到“支付记录”的主键 ID。用途可以和支付记录中的 id / relate_id 等字段对应,找到这条助教服务对应的支付流水;用于跨表关联与去重。 | assistant_service_records - order_pay_id。 | assistant_service_records.json - data.orderAssistantDetails - order_pay_id。 |
| `order_assistant_id` | BIGINT | | | 订单中“助教项目明细”的内部 ID。用途如果订单里有多条助教项目比如换助教、多个时间段此字段唯一标识这一条助教明细用于跨表关联与去重。 | assistant_service_records - order_assistant_id。 | assistant_service_records.json - data.orderAssistantDetails - order_assistant_id。 |
| `order_assistant_type` | INTEGER | | | 1常规助教服务主课/基础课)。 | assistant_service_records - order_assistant_type。 | assistant_service_records.json - data.orderAssistantDetails - order_assistant_type。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID你这份数据中是固定值同一个商户关联全库所有表都有作为“商户维度”的过滤键用途多租户数据隔离与按租户汇总。 | assistant_service_records - tenant_id。 | assistant_service_records.json - data.orderAssistantDetails - tenant_id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID本数据中指“朗朗桌球”这一家门店。关联与其他所有 JSON 中的 site_id 一致,用于判断记录属于哪家门店。 | assistant_service_records - site_id。 | assistant_service_records.json - data.orderAssistantDetails - site_id。 |
| `site_table_id` | BIGINT | | | 球台 ID。关联对应台桌列表中的 id 字段,表示具体是哪一张桌;用于跨表关联与去重。 | assistant_service_records - site_table_id。 | assistant_service_records.json - data.orderAssistantDetails - site_table_id。 |
| `tenant_member_id` | BIGINT | | | 商户维度会员 ID门店/品牌内的会员主键)。;关联:**会员档案tenantMemberInfos**中的 id = 此处的 tenant_member_id用于跨表关联与去重。 | assistant_service_records - tenant_member_id。 | assistant_service_records.json - data.orderAssistantDetails - tenant_member_id。 |
| `system_member_id` | BIGINT | | | 系统级会员 ID全集团统一 ID关联会员档案中的 system_member_id 字段;用于跨表关联与去重。 | assistant_service_records - system_member_id。 | assistant_service_records.json - data.orderAssistantDetails - system_member_id。 |
| `assistant_no` | VARCHAR(64) | | | 助教编号,例如 "27"。;关联:在助教账号表里也有 assistant_no 字段,对应工号/编号。 | assistant_service_records - assistantNo。 | assistant_service_records.json - data.orderAssistantDetails - assistantNo。 |
| `nickname` | VARCHAR(64) | | | 助教对外昵称,如“佳怡”“周周”“球球”等。;关联:在很多小票、商品名里,会把 “编号-昵称” 组合使用(如 ledger_name = "2-佳怡")。 | assistant_service_records - nickname。 | assistant_service_records.json - data.orderAssistantDetails - nickname。 |
| `site_assistant_id` | BIGINT | | | 订单中“助教项目明细”的内部 ID。用途如果订单里有多条助教项目比如换助教、多个时间段此字段唯一标识这一条助教明细用于跨表关联与去重。 | assistant_service_records - order_assistant_id。 | assistant_service_records.json - data.orderAssistantDetails - order_assistant_id。 |
| `user_id` | BIGINT | | | 助教对应的“用户账号 ID”系统级用户关联在助教账号表中有同名字段 user_id与这里完全一致用于跨表关联与去重。 | assistant_service_records - user_id。 | assistant_service_records.json - data.orderAssistantDetails - user_id。 |
| `assistant_team_id` | BIGINT | | | 助教所属团队 ID。关联在助教账号表中有 team_id 字段,对应相同值;用于跨表关联与去重。 | assistant_service_records - assistant_team_id。 | assistant_service_records.json - data.orderAssistantDetails - assistant_team_id。 |
| `person_org_id` | BIGINT | | | 助教所属“人事组织/部门 ID”。关联在助教账号表中同样存在 person_org_id 字段,值完全一致;用于跨表关联与去重。 | assistant_service_records - person_org_id。 | assistant_service_records.json - data.orderAssistantDetails - person_org_id。 |
| `assistant_level` | INTEGER | | | 业务明细字段,用于补充该记录的业务属性。 | assistant_service_records - assistant_level。 | assistant_service_records.json - data.orderAssistantDetails - assistant_level。 |
| `level_name` | VARCHAR(64) | | | 助教等级名称,与 assistant_level 一一对应(初级/中级/高级/助教管理)。 | assistant_service_records - levelName。 | assistant_service_records.json - data.orderAssistantDetails - levelName。 |
| `skill_id` | BIGINT | | | 助教服务“课程/技能”ID。关联应对应某个“课程/技能配置表”的主键(你这次导出里没见那个表);用于跨表关联与去重。 | assistant_service_records - skill_id。 | assistant_service_records.json - data.orderAssistantDetails - skill_id。 |
| `skill_name` | VARCHAR(64) | | | 当前这条助教服务所对应的“课程/技能名称”。 | assistant_service_records - skillName。 | assistant_service_records.json - data.orderAssistantDetails - skillName。 |
| `ledger_unit_price` | NUMERIC(10,2) | | | 助教服务 标准单价(通常是标价:每小时、每节课的单价)。 | assistant_service_records - ledger_unit_price。 | assistant_service_records.json - data.orderAssistantDetails - ledger_unit_price。 |
| `ledger_amount` | NUMERIC(10,2) | | | 按标准单价计算出来的应收金额(近似 = ledger_unit_price × income_seconds / 3600。 | assistant_service_records - ledger_amount。 | assistant_service_records.json - data.orderAssistantDetails - ledger_amount。 |
| `projected_income` | NUMERIC(10,2) | | | 实际结算计入门店的金额(已经考虑折扣、卡权益、券等后的结果)。 | assistant_service_records - projected_income。 | assistant_service_records.json - data.orderAssistantDetails - projected_income。 |
| `coupon_deduct_money` | NUMERIC(10,2) | | | 由“优惠券/代金券/团购券”等 直接抵扣到这条助教服务上的金额。 | assistant_service_records - coupon_deduct_money。 | assistant_service_records.json - data.orderAssistantDetails - coupon_deduct_money。 |
| `income_seconds` | INTEGER | | | 计费秒数 / 应计收入对应的时间。 | assistant_service_records - income_seconds。 | assistant_service_records.json - data.orderAssistantDetails - income_seconds。 |
| `real_use_seconds` | INTEGER | | | 实际使用时长(秒)。 | assistant_service_records - real_use_seconds。 | assistant_service_records.json - data.orderAssistantDetails - real_use_seconds。 |
| `add_clock` | INTEGER | | | 加钟秒数,即在原有预约/服务基础上临时追加的时长。 | assistant_service_records - add_clock。 | assistant_service_records.json - data.orderAssistantDetails - add_clock。 |
| `create_time` | TIMESTAMPTZ | | | 这条助教流水记录创建时间(一般接近结算/下单时间);记录源系统创建时间,用于增量同步和口径对齐。 | assistant_service_records - create_time。 | assistant_service_records.json - data.orderAssistantDetails - create_time。 |
| `start_use_time` | TIMESTAMPTZ | | | 助教实际开始服务时间。 | assistant_service_records - start_use_time。 | assistant_service_records.json - data.orderAssistantDetails - start_use_time。 |
| `last_use_time` | TIMESTAMPTZ | | | 最后一次使用(实际服务)时间。 | assistant_service_records - last_use_time。 | assistant_service_records.json - data.orderAssistantDetails - last_use_time。 |
| `is_delete` | INTEGER | | | 逻辑删除标志。;注意:这份助教流水里没有直接出现“顾客姓名”字段,只通过这两个 ID 与会员档案、储值卡等表关联;软删除/作废标记,分析通常需过滤为有效记录。 | assistant_service_records - is_delete。 | assistant_service_records.json - data.orderAssistantDetails - is_delete。 |
## `dwd_assistant_trash_event`
- 表说明DWD 明细事实表dwd_assistant_trash_event。ODS 来源表billiards_ods.assistant_cancellation_records对应 JSONassistant_cancellation_records.json分析assistant_cancellation_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键assistant_trash_event_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `assistant_trash_event_id` | BIGINT | Y | | 助教trashevent ID源系统唯一标识用于跨表关联、去重与维度汇总。 | assistant_cancellation_records - id。 | assistant_cancellation_records.json - data.abolitionAssistants - id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID即该废除记录所在门店。关联与 siteProfile.id 一致;用途:门店维度分组、计营业额、与门店档案关联。 | assistant_cancellation_records - siteId。 | assistant_cancellation_records.json - data.abolitionAssistants - siteId。 |
| `table_id` | BIGINT | | dim_table(table_id) | 球台/桌子的 ID。关联对应 “台桌列表.json” 中的 id 字段;用于跨表关联与去重。 | assistant_cancellation_records - tableId。 | assistant_cancellation_records.json - data.abolitionAssistants - tableId。 |
| `table_area_id` | BIGINT | | | 台桌所在区域 ID。关联应对应“区域配置表”的主键本次导出未包含该表用于跨表关联与去重。 | assistant_cancellation_records - tableAreaId。 | assistant_cancellation_records.json - data.abolitionAssistants - tableAreaId。 |
| `assistant_no` | VARCHAR(32) | | | 助教姓名/对外展示名称。;注意:这是被废除的那位助教,不是顾客姓名。 | assistant_cancellation_records - assistantName。 | assistant_cancellation_records.json - data.abolitionAssistants - assistantName。 |
| `assistant_name` | VARCHAR(64) | | | 助教姓名/对外展示名称。;注意:这是被废除的那位助教,不是顾客姓名。 | assistant_cancellation_records - assistantName。 | assistant_cancellation_records.json - data.abolitionAssistants - assistantName。 |
| `charge_minutes_raw` | INTEGER | | | “已发生的计费时长(分钟)”,即这次助教服务在被废除前已经累计了多少分钟。 | assistant_cancellation_records - pdChargeMinutes。 | assistant_cancellation_records.json - data.abolitionAssistants - pdChargeMinutes。 |
| `abolish_amount` | NUMERIC(18,2) | | | 与“助教废除”关联的金额字段。字面上是“助教废除金额”。 | assistant_cancellation_records - assistantAbolishAmount。 | assistant_cancellation_records.json - data.abolitionAssistants - assistantAbolishAmount。 |
| `trash_reason` | VARCHAR(255) | | | 用于记录“废除原因”的文本描述,例如“顾客临时有事取消”“录入错误”“更换助教”等。 | assistant_cancellation_records - trashReason。 | assistant_cancellation_records.json - data.abolitionAssistants - trashReason。 |
| `create_time` | TIMESTAMPTZ | | | 这条“助教废除记录”被创建的时间,即系统正式记录“废除”操作的时刻;记录源系统创建时间,用于增量同步和口径对齐。 | assistant_cancellation_records - createTime。 | assistant_cancellation_records.json - data.abolitionAssistants - createTime。 |
## `dwd_groupbuy_redemption`
- 表说明DWD 明细事实表dwd_groupbuy_redemption。ODS 来源表billiards_ods.group_buy_redemption_records对应 JSONgroup_buy_redemption_records.json分析group_buy_redemption_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键redemption_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `redemption_id` | BIGINT | Y | | 本条“团购套餐流水”记录的 主键 ID。用途唯一标识一条券使用到台费上的记录用于跨表关联与去重。 | group_buy_redemption_records - id。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - id。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID用途多租户数据隔离与按租户汇总。 | group_buy_redemption_records - tenant_id。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - tenant_id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID与其它 JSON 中一致。;关联:与“团购套餐定义”、“助教流水”、“台费流水”、“门店销售记录”等文件中的 site_id 完全一致,用于统一按门店过滤。 | group_buy_redemption_records - site_id。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - site_id。 |
| `table_id` | BIGINT | | dim_table(table_id) | 球台 ID。关联对应“台桌列表”表中的 id 字段;用于跨表关联与去重。 | group_buy_redemption_records - table_id。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - table_id。 |
| `tenant_table_area_id` | BIGINT | | | 租户级台区分组 ID表示当前使用券的台桌所属的区域组合。关联与“团购套餐定义”中的 tenant_table_area_id_list 对应(那边是字符串形态,这里是数值形态),表明该券只能在某些台区组合上使用;用于跨表关联与去重。 | group_buy_redemption_records - tenant_table_area_id。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - tenant_table_area_id。 |
| `table_charge_seconds` | INTEGER | | | 本次结算中该球台总计计费的秒数(整台的台费计费时间)。 | group_buy_redemption_records - table_charge_seconds。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - table_charge_seconds。 |
| `order_trade_no` | BIGINT | | | 订单交易号,和其它消费明细(台费、商品、助教、团购)共用的订单主键。;关联:与“小票详情”、“台费流水”、“助教流水”等的 order_trade_no 一致,用于将同一笔结账中的所有子项目关联起来。 | group_buy_redemption_records - order_trade_no。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - order_trade_no。 |
| `order_settle_id` | BIGINT | | dwd_settlement_head(order_settle_id) | 结算单 ID小票结账主键关联与“小票详情”中的 orderSettleId 相对应;用于跨表关联与去重。 | group_buy_redemption_records - order_settle_id。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - order_settle_id。 |
| `order_coupon_id` | BIGINT | | | 订单中“券使用记录”的 ID用于跨表关联与去重。 | group_buy_redemption_records - order_coupon_id。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - order_coupon_id。 |
| `coupon_origin_id` | BIGINT | | | 平台/上游系统中的券记录主键 ID“券来源 ID”用于跨表关联与去重。 | group_buy_redemption_records - coupon_origin_id。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - coupon_origin_id。 |
| `promotion_activity_id` | BIGINT | | | 团购/促销活动 ID用于跨表关联与去重。 | group_buy_redemption_records - promotion_activity_id。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - promotion_activity_id。 |
| `promotion_coupon_id` | BIGINT | | | 团购套餐定义 ID。关联与 20251110_043255_团购套餐.json 中的 id 字段一一对应,即:;用于跨表关联与去重。 | group_buy_redemption_records - promotion_coupon_id。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - promotion_coupon_id。 |
| `order_coupon_channel` | INTEGER | | | 券渠道类型,例如:。 | group_buy_redemption_records - order_coupon_channel。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - order_coupon_channel。 |
| `ledger_unit_price` | NUMERIC(18,2) | | | 对应台费的标准单价,单位元/小时从数值来看是类似29.9/小时这种定价)。;用途:配合 ledger_count 用于计算这一条券在台费层面对应的金额(理论上应接近 = 单价 × 秒数/3600。 | group_buy_redemption_records - ledger_unit_price。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - ledger_unit_price。 |
| `ledger_count` | INTEGER | | | 按此次优惠实际计算的“核销秒数”。 | group_buy_redemption_records - ledger_count。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - ledger_count。 |
| `ledger_amount` | NUMERIC(18,2) | | | 本次券实际冲抵台费的金额。 | group_buy_redemption_records - ledger_amount。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - ledger_amount。 |
| `coupon_money` | NUMERIC(18,2) | | | 本次核销时,这张券在门店侧对应的金额额度(“可抵扣金额”)。 | group_buy_redemption_records - coupon_money。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - coupon_money。 |
| `promotion_seconds` | INTEGER | | | 团购套餐定义的“标准时长”(券本身标称的可用时长)。 | group_buy_redemption_records - promotion_seconds。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - promotion_seconds。 |
| `coupon_code` | VARCHAR(64) | | | 团购券券码,核销时扫描/录入的字符串。;关联:与平台验券记录表中的 coupon_code 完全一致,通过该字段可以串起“平台 → 核销 → 台费流水”全链路。 | group_buy_redemption_records - coupon_code。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - coupon_code。 |
| `is_single_order` | INTEGER | | | 是否单独作为一条订单行。 | group_buy_redemption_records - is_single_order。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - is_single_order。 |
| `is_delete` | INTEGER | | | 逻辑删除标志:;软删除/作废标记,分析通常需过滤为有效记录。 | group_buy_redemption_records - is_delete。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - is_delete。 |
| `ledger_name` | VARCHAR(128) | | | 台费侧关联的“团购项目名称”(记账名)。 | group_buy_redemption_records - ledger_name。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - ledger_name。 |
| `create_time` | TIMESTAMPTZ | | | 本条团购套餐使用流水创建时间(即券核销时间,或与结账时间接近);记录源系统创建时间,用于增量同步和口径对齐。 | group_buy_redemption_records - create_time。 | group_buy_redemption_records.json - data.siteTableUseDetailsList - create_time。 |
## `dwd_member_balance_change`
- 表说明DWD 明细事实表dwd_member_balance_change。ODS 来源表billiards_ods.member_balance_changes对应 JSONmember_balance_changes.json分析member_balance_changes-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键balance_change_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `balance_change_id` | BIGINT | Y | | 余额变更记录的主键 ID唯一标识这一条“账户余额变化事件”用于跨表关联与去重。 | member_balance_changes - id。 | member_balance_changes.json - data.tenantMemberCardLogs - id。 |
| `tenant_id` | BIGINT | | | 租户/商户 ID本数据中是固定值同一品牌/商户);用途:多租户数据隔离与按租户汇总。 | member_balance_changes - tenant_id。 | member_balance_changes.json - data.tenantMemberCardLogs - tenant_id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 非 0记录所属的具体门店 ID与其他 JSON 内的 site_id 一致关联可与门店档案siteProfile.id对应用途门店维度分组、计营业额、与门店档案关联。 | member_balance_changes - site_id。 | member_balance_changes.json - data.tenantMemberCardLogs - site_id。 |
| `register_site_id` | BIGINT | | | 会员卡的“注册门店 ID”即办卡所在门店用于跨表关联与去重。 | member_balance_changes - register_site_id。 | member_balance_changes.json - data.tenantMemberCardLogs - register_site_id。 |
| `tenant_member_id` | BIGINT | | | 商户维度的会员 ID租户内会员主键用途在本表与会员档案之间形成外键关系 余额变更记录.tenant_member_id = 会员档案.id关联对应“会员档案20251110_043209_…”中的 id 字段,即同一个租户下的会员主键;用于跨表关联与去重。 | member_balance_changes - tenant_member_id。 | member_balance_changes.json - data.tenantMemberCardLogs - tenant_member_id。 |
| `system_member_id` | BIGINT | | | 系统级(全局)会员 ID。关联对应会员档案中的 system_member_id 字段;用于跨表关联与去重。 | member_balance_changes - system_member_id。 | member_balance_changes.json - data.tenantMemberCardLogs - system_member_id。 |
| `tenant_member_card_id` | BIGINT | | | 会员卡账户 ID在租户内唯一标识某张卡。用途一名会员可以有多张卡储值卡、台费卡、酒水卡、活动券等tenant_member_card_id 指明这条余额变更是针对哪一张卡。;关联:对应“会员档案/储值卡列表”中的 id卡账户 ID用于跨表关联与去重。 | member_balance_changes - tenant_member_card_id。 | member_balance_changes.json - data.tenantMemberCardLogs - tenant_member_card_id。 |
| `card_type_id` | BIGINT | | | 卡种类型 ID用于区分不同卡种。 | member_balance_changes - card_type_id。 | member_balance_changes.json - data.tenantMemberCardLogs - card_type_id。 |
| `card_type_name` | VARCHAR(32) | | | 卡种名称,与 card_type_id 一一对应,是一个 卡种枚举名称。 | member_balance_changes - memberCardTypeName。 | member_balance_changes.json - data.tenantMemberCardLogs - memberCardTypeName。 |
| `member_name` | VARCHAR(64) | | | 会员姓名或称呼(非昵称字段)。 | member_balance_changes - memberName。 | member_balance_changes.json - data.tenantMemberCardLogs - memberName。 |
| `member_mobile` | VARCHAR(20) | | | 会员手机号;手机号码,用于账户/会员识别、查询与联系。 | member_balance_changes - memberMobile。 | member_balance_changes.json - data.tenantMemberCardLogs - memberMobile。 |
| `balance_before` | NUMERIC(18,2) | | | 本次变动前,该卡账户的余额(元)。 | member_balance_changes - before。 | member_balance_changes.json - data.tenantMemberCardLogs - before。 |
| `change_amount` | NUMERIC(18,2) | | | 本次变动的金额(元),正数表示增加,负数表示减少。 | member_balance_changes - account_data。 | member_balance_changes.json - data.tenantMemberCardLogs - account_data。 |
| `balance_after` | NUMERIC(18,2) | | | 本次变动后,该卡账户的余额(元)。 | member_balance_changes - after。 | member_balance_changes.json - data.tenantMemberCardLogs - after。 |
| `from_type` | INTEGER | | | 1日常消费扣款。 | member_balance_changes - from_type。 | member_balance_changes.json - data.tenantMemberCardLogs - from_type。 |
| `payment_method` | INTEGER | | | 业务状态/类型字段,用于过滤、分类与统计口径区分。 | member_balance_changes - payment_method。 | member_balance_changes.json - data.tenantMemberCardLogs - payment_method。 |
| `change_time` | TIMESTAMPTZ | | | 本条余额变更记录的创建时间,通常接近交易发生时间。 | member_balance_changes - create_time。 | member_balance_changes.json - data.tenantMemberCardLogs - create_time。 |
| `is_delete` | INTEGER | | | 逻辑删除标记:;软删除/作废标记,分析通常需过滤为有效记录。 | member_balance_changes - is_delete。 | member_balance_changes.json - data.tenantMemberCardLogs - is_delete。 |
| `remark` | VARCHAR(255) | | | 当为空时,说明这条变动没有额外备注说明。 | member_balance_changes - remark。 | member_balance_changes.json - data.tenantMemberCardLogs - remark。 |
## `dwd_payment`
- 表说明DWD 明细事实表dwd_payment。ODS 来源表billiards_ods.payment_transactions对应 JSONpayment_transactions.json分析payment_transactions-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键payment_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `payment_id` | BIGINT | Y | | 支付流水记录的主键 ID。用途在“支付记录”这个表内部唯一标识一条支付流水包括金额为 0 的记录);用于跨表关联与去重。 | payment_transactions - id。 | payment_transactions.json - $ - id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 支付记录所属的门店 ID用途门店维度分组、计营业额、与门店档案关联。 | payment_transactions - site_id。 | payment_transactions.json - $ - site_id。 |
| `relate_type` | INTEGER | | | 表示“这条支付记录关联的业务类型”。 | payment_transactions - relate_type。 | payment_transactions.json - $ - relate_type。 |
| `relate_id` | BIGINT | | | 关联业务记录的主键 ID按 relate_type 不同指向不同表);用于跨表关联与去重。 | payment_transactions - relate_id。 | payment_transactions.json - $ - relate_id。 |
| `pay_amount` | NUMERIC(18,2) | | | 本条支付流水的“支付金额”,单位为元。 | payment_transactions - pay_amount。 | payment_transactions.json - $ - pay_amount。 |
| `pay_status` | INTEGER | | | 支付状态枚举字段。 | payment_transactions - pay_status。 | payment_transactions.json - $ - pay_status。 |
| `payment_method` | INTEGER | | | 支付方式枚举,例如微信、支付宝、现金、银行卡、储值卡等某一种。 | payment_transactions - payment_method。 | payment_transactions.json - $ - payment_method。 |
| `online_pay_channel` | INTEGER | | | 线上支付渠道枚举,例如:。 | payment_transactions - online_pay_channel。 | payment_transactions.json - $ - online_pay_channel。 |
| `create_time` | TIMESTAMPTZ | | | 支付记录创建时间,通常与发起支付请求的时间一致(创建支付流水的时间戳);记录源系统创建时间,用于增量同步和口径对齐。 | payment_transactions - create_time。 | payment_transactions.json - $ - create_time。 |
| `pay_time` | TIMESTAMPTZ | | | 实际支付完成时间(支付状态变为成功的时间戳)。 | payment_transactions - pay_time。 | payment_transactions.json - $ - pay_time。 |
| `pay_date` | DATE | | | 业务明细字段,用于补充该记录的业务属性。 | payment_transactions - pay_time派生DATE(pay_time))。 | payment_transactions.json - $ - pay_time派生DATE(pay_time))。 |
## `dwd_platform_coupon_redemption`
- 表说明DWD 明细事实表dwd_platform_coupon_redemption。ODS 来源表billiards_ods.platform_coupon_redemption_records对应 JSONplatform_coupon_redemption_records.json分析platform_coupon_redemption_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键platform_coupon_redemption_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `platform_coupon_redemption_id` | BIGINT | Y | | 本条平台验券记录在本系统内的主键 ID用于跨表关联与去重。 | platform_coupon_redemption_records - id。 | platform_coupon_redemption_records.json - $ - id。 |
| `tenant_id` | BIGINT | | | 商户/租户 ID品牌级别关联与其他所有 JSON 中的 tenant_id 一致,用于区分不同品牌/商户的数据域。 | platform_coupon_redemption_records - tenant_id。 | platform_coupon_redemption_records.json - $ - tenant_id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID。关联对应 siteProfile.id用途门店维度分组、计营业额、与门店档案关联。 | platform_coupon_redemption_records - site_id。 | platform_coupon_redemption_records.json - $ - site_id。 |
| `coupon_code` | VARCHAR(64) | | | 券码,顾客出示的团购券密码/编号。 | platform_coupon_redemption_records - coupon_code。 | platform_coupon_redemption_records.json - $ - coupon_code。 |
| `coupon_channel` | INTEGER | | | 券来源渠道(第三方平台渠道编号)。 | platform_coupon_redemption_records - coupon_channel。 | platform_coupon_redemption_records.json - $ - coupon_channel。 |
| `coupon_name` | VARCHAR(200) | | | 团购券产品名称(即第三方平台上向顾客展示的名称)。 | platform_coupon_redemption_records - coupon_name。 | platform_coupon_redemption_records.json - $ - coupon_name。 |
| `sale_price` | NUMERIC(10,2) | | | 顾客在第三方平台上实际支付的价格(团购售价)。 | platform_coupon_redemption_records - sale_price。 | platform_coupon_redemption_records.json - $ - sale_price。 |
| `coupon_money` | NUMERIC(10,2) | | | 券面值 / 套餐价值(系统层面的“可抵扣金额或对应套餐价值”)。 | platform_coupon_redemption_records - coupon_money。 | platform_coupon_redemption_records.json - $ - coupon_money。 |
| `coupon_free_time` | INTEGER | | | 券附带的“免费时长”字段(例如送多少分钟台费)。 | platform_coupon_redemption_records - coupon_free_time。 | platform_coupon_redemption_records.json - $ - coupon_free_time。 |
| `channel_deal_id` | BIGINT | | | 渠道侧 dealId / 产品 ID一般是第三方平台给该团购商品定义的主键用于跨表关联与去重。 | platform_coupon_redemption_records - channel_deal_id。 | platform_coupon_redemption_records.json - $ - channel_deal_id。 |
| `deal_id` | BIGINT | | | 另一个层次的团购产品 ID用于跨表关联与去重。 | platform_coupon_redemption_records - deal_id。 | platform_coupon_redemption_records.json - $ - deal_id。 |
| `group_package_id` | BIGINT | | | group套餐 ID源系统唯一标识用于跨表关联、去重与维度汇总。 | platform_coupon_redemption_records - group_package_id。 | platform_coupon_redemption_records.json - $ - group_package_id。 |
| `site_order_id` | BIGINT | | | 门店内部的订单 ID平台券核销时对应的店内订单关联与台费流水、门店销售记录、助教流水等中出现的订单 ID 字段对应,用于把“平台券核销记录”挂到一笔本地订单上。 | platform_coupon_redemption_records - site_order_id。 | platform_coupon_redemption_records.json - $ - site_order_id。 |
| `table_id` | BIGINT | | dim_table(table_id) | 使用券的球台 ID。关联与“台桌列表”中的 id 对应;用于跨表关联与去重。 | platform_coupon_redemption_records - table_id。 | platform_coupon_redemption_records.json - $ - table_id。 |
| `certificate_id` | VARCHAR(64) | | | 平台侧的凭证 ID通常由第三方团购平台生成的券实例 ID用于跨表关联与去重。 | platform_coupon_redemption_records - certificate_id。 | platform_coupon_redemption_records.json - $ - certificate_id。 |
| `verify_id` | VARCHAR(64) | | | 平台核销记录 ID某些平台会为每一次核销生成一个唯一 ID用于跨表关联与去重。 | platform_coupon_redemption_records - verify_id。 | platform_coupon_redemption_records.json - $ - verify_id。 |
| `use_status` | INTEGER | | | 1已使用 / 已核销(正常消耗)。 | platform_coupon_redemption_records - use_status。 | platform_coupon_redemption_records.json - $ - use_status。 |
| `is_delete` | INTEGER | | | 0未删除用途把平台验券记录挂到本门店的一条订单上软删除/作废标记,分析通常需过滤为有效记录。 | platform_coupon_redemption_records - is_delete。 | platform_coupon_redemption_records.json - $ - is_delete。 |
| `create_time` | TIMESTAMPTZ | | | 验券记录在本系统中创建的时间(记录入库时间);记录源系统创建时间,用于增量同步和口径对齐。 | platform_coupon_redemption_records - create_time。 | platform_coupon_redemption_records.json - $ - create_time。 |
| `consume_time` | TIMESTAMPTZ | | | 券被核销/使用的业务时间。 | platform_coupon_redemption_records - consume_time。 | platform_coupon_redemption_records.json - $ - consume_time。 |
## `dwd_recharge_order`
- 表说明DWD 明细事实表dwd_recharge_order。ODS 来源表billiards_ods.recharge_settlements对应 JSONrecharge_settlements.json分析recharge_settlements-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键recharge_order_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `recharge_order_id` | BIGINT | Y | | 门店 ID用于跨表关联与去重。 | recharge_settlements - id。 | recharge_settlements.json - $ - id。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID和 siteProfile.tenant_id 一致;用途:多租户数据隔离与按租户汇总。 | recharge_settlements - tenantid。 | recharge_settlements.json - $ - tenantid。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID和 siteProfile.id 一致;用途:门店维度分组、计营业额、与门店档案关联。 | recharge_settlements - siteid。 | recharge_settlements.json - $ - siteid。 |
| `member_id` | BIGINT | | dim_member(member_id) | 会员档案的主键 ID。关联对应“会员档案.json”中 tenantMemberInfos 的 id 字段(部分成员能直接匹配);用于跨表关联与去重。 | recharge_settlements - memberid。 | recharge_settlements.json - $ - memberid。 |
| `member_name_snapshot` | TEXT | | | 会员名称/昵称快照。 | recharge_settlements - membername。 | recharge_settlements.json - $ - membername。 |
| `member_phone_snapshot` | TEXT | | | 会员手机号快照,用于查找和展示。 | recharge_settlements - memberphone。 | recharge_settlements.json - $ - memberphone。 |
| `tenant_member_card_id` | BIGINT | | | 会员卡实例 ID某张具体卡用于跨表关联与去重。 | recharge_settlements - tenantmembercardid。 | recharge_settlements.json - $ - tenantmembercardid。 |
| `member_card_type_name` | TEXT | | | 本次充值针对的会员卡类型名称。 | recharge_settlements - membercardtypename。 | recharge_settlements.json - $ - membercardtypename。 |
| `settle_relate_id` | BIGINT | | | 关联的“结算单/业务单”ID用于跨表关联与去重。 | recharge_settlements - settlerelateid。 | recharge_settlements.json - $ - settlerelateid。 |
| `settle_type` | INTEGER | | | 业务状态/类型字段,用于过滤、分类与统计口径区分。 | recharge_settlements - settletype。 | recharge_settlements.json - $ - settletype。 |
| `settle_name` | TEXT | | | 业务类型名称,用于前端展示。 | recharge_settlements - settlename。 | recharge_settlements.json - $ - settlename。 |
| `is_first` | INTEGER | | | 业务状态/类型字段,用于过滤、分类与统计口径区分。 | recharge_settlements - isfirst。 | recharge_settlements.json - $ - isfirst。 |
| `pay_amount` | NUMERIC(18,2) | | | 本次记录对应的充值金额(含正负)。 | recharge_settlements - payamount。 | recharge_settlements.json - $ - payamount。 |
| `refund_amount` | NUMERIC(18,2) | | | 针对本条充值订单所做的退款金额(通常为正数)。 | recharge_settlements - refundamount。 | recharge_settlements.json - $ - refundamount。 |
| `point_amount` | NUMERIC(18,2) | | | 计入会员账户的“储值金额”或“积分型金额”。 | recharge_settlements - pointamount。 | recharge_settlements.json - $ - pointamount。 |
| `cash_amount` | NUMERIC(18,2) | | | 现金收款金额。 | recharge_settlements - cashamount。 | recharge_settlements.json - $ - cashamount。 |
| `payment_method` | INTEGER | | | 支付方式编码。 | recharge_settlements - paymentmethod。 | recharge_settlements.json - $ - paymentmethod。 |
| `create_time` | TIMESTAMPTZ | | | 充值记录创建时间,一般即收银完成时间;记录源系统创建时间,用于增量同步和口径对齐。 | recharge_settlements - createtime。 | recharge_settlements.json - $ - createtime。 |
| `pay_time` | TIMESTAMPTZ | | | 支付完成时间。 | recharge_settlements - paytime。 | recharge_settlements.json - $ - paytime。 |
## `dwd_refund`
- 表说明DWD 明细事实表dwd_refund。ODS 来源表billiards_ods.refund_transactions对应 JSONrefund_transactions.json分析refund_transactions-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键refund_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `refund_id` | BIGINT | Y | | 本条 退款流水 的唯一 ID。用途作为退款记录表主键内部检索用用于跨表关联与去重。 | refund_transactions - id。 | refund_transactions.json - $ - id。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID全系统维度标识该商户。用途作为所有门店数据的“租户分区键”用途多租户数据隔离与按租户汇总。 | refund_transactions - tenant_id。 | refund_transactions.json - $ - tenant_id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID。用途关联其他数据表中同一门店的数据用途门店维度分组、计营业额、与门店档案关联。 | refund_transactions - site_id。 | refund_transactions.json - $ - site_id。 |
| `relate_type` | INTEGER | | | 本退款对应的“业务类型”。 | refund_transactions - relate_type。 | refund_transactions.json - $ - relate_type。 |
| `relate_id` | BIGINT | | | 本次退款关联的业务 ID用于跨表关联与去重。 | refund_transactions - relate_id。 | refund_transactions.json - $ - relate_id。 |
| `pay_amount` | NUMERIC(18,2) | | | 本次退款的 资金变动金额。 | refund_transactions - pay_amount。 | refund_transactions.json - $ - pay_amount。 |
| `channel_fee` | NUMERIC(18,2) | | | 第三方支付渠道对本次退款收取的手续费。 | refund_transactions - channel_fee。 | refund_transactions.json - $ - channel_fee。 |
| `pay_time` | TIMESTAMPTZ | | | 退款在支付渠道层面实际发生的时间。 | refund_transactions - pay_time。 | refund_transactions.json - $ - pay_time。 |
| `create_time` | TIMESTAMPTZ | | | 本条退款流水在系统内创建时间;记录源系统创建时间,用于增量同步和口径对齐。 | refund_transactions - create_time。 | refund_transactions.json - $ - create_time。 |
| `payment_method` | INTEGER | | | 支付/退款的 方式类型:。 | refund_transactions - payment_method。 | refund_transactions.json - $ - payment_method。 |
| `member_id` | BIGINT | | dim_member(member_id) | 租户内部的会员 ID对应会员档案中的某个主键用于跨表关联与去重。 | refund_transactions - member_id。 | refund_transactions.json - $ - member_id。 |
| `member_card_id` | BIGINT | | dim_member_card_account(member_card_id) | 关联的会员卡账户 ID对应“储值卡列表”或“会员档案”中的某一张卡用于跨表关联与去重。 | refund_transactions - member_card_id。 | refund_transactions.json - $ - member_card_id。 |
## `dwd_settlement_head`
- 表说明DWD 明细事实表dwd_settlement_head。ODS 来源表billiards_ods.settlement_records对应 JSONsettlement_records.json分析settlement_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键order_settle_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `order_settle_id` | BIGINT | Y | | 结账记录主键 ID订单结算 ID关联与台费流水siteTableUseDetailsList中的 order_settle_id 一致;用于跨表关联与去重。 | settlement_records - id。 | settlement_records.json - $ - id。 |
| `tenant_id` | BIGINT | | | 租户/商户 ID品牌维度用途多租户数据隔离与按租户汇总。 | settlement_records - tenantid。 | settlement_records.json - $ - tenantid。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID。关联与其他所有 JSON 中的 site_id 对应;用途:门店维度分组、计营业额、与门店档案关联。 | settlement_records - siteid。 | settlement_records.json - $ - siteid。 |
| `site_name` | VARCHAR(100) | | | 门店名称,冗余展示字段。 | settlement_records - sitename。 | settlement_records.json - $ - sitename。 |
| `table_id` | BIGINT | | dim_table(table_id) | 本次结账对应的桌台 ID。关联对应台桌维表或台费流水中的 site_table_id用于跨表关联与去重。 | settlement_records - tableid。 | settlement_records.json - $ - tableid。 |
| `settle_name` | VARCHAR(100) | | | 结账对象名称,一般是“区域 + 桌号”的组合。 | settlement_records - settlename。 | settlement_records.json - $ - settlename。 |
| `order_trade_no` | BIGINT | | | 关联订单的“交易号”order_trade_no关联与台费流水order_trade_no、助教流水order_trade_no中的该字段完全一致。 | settlement_records - settlerelateid。 | settlement_records.json - $ - settlerelateid。 |
| `create_time` | TIMESTAMPTZ | | | 结账记录创建时间,一般对应收银端点“确认结账”的时间;记录源系统创建时间,用于增量同步和口径对齐。 | settlement_records - createtime。 | settlement_records.json - $ - createtime。 |
| `pay_time` | TIMESTAMPTZ | | | 实际支付完成时间。通常晚于 createTime比如多支付场景。 | settlement_records - paytime。 | settlement_records.json - $ - paytime。 |
| `settle_type` | INTEGER | | | 代表结账类型,比如:。 | settlement_records - settletype。 | settlement_records.json - $ - settletype。 |
| `revoke_order_id` | BIGINT | | | 若当前记录是“被撤销的单”,则记录对应的“撤销单 ID”或反过来记录“原单 ID”用于跨表关联与去重。 | settlement_records - revokeorderid。 | settlement_records.json - $ - revokeorderid。 |
| `member_id` | BIGINT | | dim_member(member_id) | 会员主键 ID。关联与“会员卡列表tenantMemberCards”中的 tenant_member_id 一致;用于跨表关联与去重。 | settlement_records - memberid。 | settlement_records.json - $ - memberid。 |
| `member_name` | VARCHAR(100) | | | 会员姓名快照。 | settlement_records - membername。 | settlement_records.json - $ - membername。 |
| `member_phone` | VARCHAR(50) | | | 会员手机号快照;手机号码,用于账户/会员识别、查询与联系。 | settlement_records - memberphone。 | settlement_records.json - $ - memberphone。 |
| `member_card_account_id` | BIGINT | | | 会员卡账户 ID与 memberId、会员卡表的 id 之间存在映射);用于跨表关联与去重。 | settlement_records - tenantmembercardid。 | settlement_records.json - $ - tenantmembercardid。 |
| `member_card_type_name` | VARCHAR(100) | | | 会员卡类型名称,如“储值卡”“次卡”“活动抵用券”等。 | settlement_records - membercardtypename。 | settlement_records.json - $ - membercardtypename。 |
| `is_bind_member` | BOOLEAN | | | 本次结账是否绑定了会员。 | settlement_records - isbindmember。 | settlement_records.json - $ - isbindmember。 |
| `member_discount_amount` | NUMERIC(18,2) | | | 会员折扣产生的优惠金额(元)。 | settlement_records - memberdiscountamount。 | settlement_records.json - $ - memberdiscountamount。 |
| `consume_money` | NUMERIC(18,2) | | | 本次结账消费总额(不考虑支付方式/优惠结构的前后顺序,单纯汇总项目金额)。 | settlement_records - consumemoney。 | settlement_records.json - $ - consumemoney。 |
| `table_charge_money` | NUMERIC(18,2) | | | 台费(桌台计费部分)的金额。 | settlement_records - tablechargemoney。 | settlement_records.json - $ - tablechargemoney。 |
| `goods_money` | NUMERIC(18,2) | | | 商品销售金额(原始商品金额)。 | settlement_records - goodsmoney。 | settlement_records.json - $ - goodsmoney。 |
| `real_goods_money` | NUMERIC(18,2) | | | 商品实际计入金额(可能已扣除某些折扣、促销)。 | settlement_records - realgoodsmoney。 | settlement_records.json - $ - realgoodsmoney。 |
| `assistant_pd_money` | NUMERIC(18,2) | | | 助教“排钟/上课”应计金额(原价)。;关联:与 助教流水.json 中对应订单的 ledger_amount 一致(应收金额)。 | settlement_records - assistantpdmoney。 | settlement_records.json - $ - assistantpdmoney。 |
| `assistant_cx_money` | NUMERIC(18,2) | | | 助教“次课/套餐/持续课”等另一类助教项目的金额。 | settlement_records - assistantcxmoney。 | settlement_records.json - $ - assistantcxmoney。 |
| `adjust_amount` | NUMERIC(18,2) | | | 人工调价金额(总和),包括整单减免、特殊调整等。 | settlement_records - adjustamount。 | settlement_records.json - $ - adjustamount。 |
| `pay_amount` | NUMERIC(18,2) | | | 本次结账“实付金额”(顾客实际支付的总金额),不包括券面值、积分等非现金部分。 | settlement_records - payamount。 | settlement_records.json - $ - payamount。 |
| `balance_amount` | NUMERIC(18,2) | | | 从会员余额账户扣除的金额(储值卡余额消费)。 | settlement_records - balanceamount。 | settlement_records.json - $ - balanceamount。 |
| `recharge_card_amount` | NUMERIC(18,2) | | | 与“充值卡”相关的支付额,可能表示本次使用充值卡抵扣的金额。 | settlement_records - rechargecardamount。 | settlement_records.json - $ - rechargecardamount。 |
| `gift_card_amount` | NUMERIC(18,2) | | | 礼品卡/代金卡的支付金额。 | settlement_records - giftcardamount。 | settlement_records.json - $ - giftcardamount。 |
| `coupon_amount` | NUMERIC(18,2) | | | 本单实际由优惠券(代金券/团购券等)抵扣的金额。 | settlement_records - couponamount。 | settlement_records.json - $ - couponamount。 |
| `rounding_amount` | NUMERIC(18,2) | | | 抹零金额/舍入差值。如四舍五入或按角、分抹零产生的调整。 | settlement_records - roundingamount。 | settlement_records.json - $ - roundingamount。 |
| `point_amount` | NUMERIC(18,2) | | | 代表与积分相关的一个金额或数量指标。结合字段命名,可能有两种用途:。 | settlement_records - pointamount。 | settlement_records.json - $ - pointamount。 |
## `dwd_store_goods_sale`
- 表说明DWD 明细事实表dwd_store_goods_sale。ODS 来源表billiards_ods.store_goods_sales_records对应 JSONstore_goods_sales_records.json分析store_goods_sales_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键store_goods_sale_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `store_goods_sale_id` | BIGINT | Y | | 本条「门店销售流水」记录的主键 ID用于跨表关联与去重。 | store_goods_sales_records - id。 | store_goods_sales_records.json - data.orderGoodsLedgers - id。 |
| `order_trade_no` | BIGINT | | | 订单交易号(业务单号)。 | store_goods_sales_records - order_trade_no。 | store_goods_sales_records.json - data.orderGoodsLedgers - order_trade_no。 |
| `order_settle_id` | BIGINT | | dwd_settlement_head(order_settle_id) | 订单结算 ID结账单主键用于跨表关联与去重。 | store_goods_sales_records - order_settle_id。 | store_goods_sales_records.json - data.orderGoodsLedgers - order_settle_id。 |
| `order_pay_id` | BIGINT | | | 关联支付记录的 ID用于跨表关联与去重。 | store_goods_sales_records - order_pay_id。 | store_goods_sales_records.json - data.orderGoodsLedgers - order_pay_id。 |
| `order_goods_id` | BIGINT | | | 订单商品明细 ID订单内部的商品行主键用于跨表关联与去重。 | store_goods_sales_records - order_goods_id。 | store_goods_sales_records.json - data.orderGoodsLedgers - order_goods_id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID系统主键用途门店维度分组、计营业额、与门店档案关联。 | store_goods_sales_records - site_id。 | store_goods_sales_records.json - data.orderGoodsLedgers - site_id。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID用途多租户数据隔离与按租户汇总。 | store_goods_sales_records - tenant_id。 | store_goods_sales_records.json - data.orderGoodsLedgers - tenant_id。 |
| `site_goods_id` | BIGINT | | dim_store_goods(site_goods_id) | 门店商品 ID用于跨表关联与去重。 | store_goods_sales_records - site_goods_id。 | store_goods_sales_records.json - data.orderGoodsLedgers - site_goods_id。 |
| `tenant_goods_id` | BIGINT | | dim_tenant_goods(tenant_goods_id) | 租户(品牌)级商品 ID全局商品 ID用于跨表关联与去重。 | store_goods_sales_records - tenant_goods_id。 | store_goods_sales_records.json - data.orderGoodsLedgers - tenant_goods_id。 |
| `tenant_goods_category_id` | BIGINT | | | 租户级商品一级分类 ID用于跨表关联与去重。 | store_goods_sales_records - tenant_goods_category_id。 | store_goods_sales_records.json - data.orderGoodsLedgers - tenant_goods_category_id。 |
| `tenant_goods_business_id` | BIGINT | | | 租户级商品「业务大类」ID例如“零食类”“酒水类”等更高维度用于跨表关联与去重。 | store_goods_sales_records - tenant_goods_business_id。 | store_goods_sales_records.json - data.orderGoodsLedgers - tenant_goods_business_id。 |
| `site_table_id` | BIGINT | | | 球台 ID用于跨表关联与去重。 | store_goods_sales_records - site_table_id。 | store_goods_sales_records.json - data.orderGoodsLedgers - site_table_id。 |
| `ledger_name` | VARCHAR(200) | | | 销售项目名称(商品名称),例如 “哇哈哈矿泉水”“地道肠”“东方树叶”等。 | store_goods_sales_records - ledger_name。 | store_goods_sales_records.json - data.orderGoodsLedgers - ledger_name。 |
| `ledger_group_name` | VARCHAR(100) | | | 销售项目所属的「门店内部分组名称」,类似前台菜单分组或大类标签。 | store_goods_sales_records - ledger_group_name。 | store_goods_sales_records.json - data.orderGoodsLedgers - ledger_group_name。 |
| `ledger_unit_price` | NUMERIC(18,2) | | | 商品在该次销售中的「结算单价」(元/单位)。 | store_goods_sales_records - ledger_unit_price。 | store_goods_sales_records.json - data.orderGoodsLedgers - ledger_unit_price。 |
| `ledger_count` | INTEGER | | | 销售数量(以 unit 为单位unit 字段在门店商品档案中)。 | store_goods_sales_records - ledger_count。 | store_goods_sales_records.json - data.orderGoodsLedgers - ledger_count。 |
| `ledger_amount` | NUMERIC(18,2) | | | 原始应收金额,公式上接近 ledger_unit_price × ledger_count。 | store_goods_sales_records - ledger_amount。 | store_goods_sales_records.json - data.orderGoodsLedgers - ledger_amount。 |
| `discount_price` | NUMERIC(18,2) | | | 本条销售明细的「价格优惠金额」,即原价部分被减免掉的金额。 | store_goods_sales_records - discount_money。 | store_goods_sales_records.json - data.orderGoodsLedgers - discount_money。 |
| `real_goods_money` | NUMERIC(18,2) | | | 商品实际入账金额(考虑折扣、可能还会考虑其它抵扣后的实际销售金额)。 | store_goods_sales_records - real_goods_money。 | store_goods_sales_records.json - data.orderGoodsLedgers - real_goods_money。 |
| `cost_money` | NUMERIC(18,2) | | | 本条销售对应的成本金额(以元计)。 | store_goods_sales_records - cost_money。 | store_goods_sales_records.json - data.orderGoodsLedgers - cost_money。 |
| `ledger_status` | INTEGER | | | 销售流水状态。 | store_goods_sales_records - ledger_status。 | store_goods_sales_records.json - data.orderGoodsLedgers - ledger_status。 |
| `is_delete` | INTEGER | | | 逻辑删除标志;软删除/作废标记,分析通常需过滤为有效记录。 | store_goods_sales_records - is_delete。 | store_goods_sales_records.json - data.orderGoodsLedgers - is_delete。 |
| `create_time` | TIMESTAMPTZ | | | 销售记录创建时间,通常就是结账时间或录入时间;记录源系统创建时间,用于增量同步和口径对齐。 | store_goods_sales_records - create_time。 | store_goods_sales_records.json - data.orderGoodsLedgers - create_time。 |
## `dwd_table_fee_adjust`
- 表说明DWD 明细事实表dwd_table_fee_adjust。ODS 来源表billiards_ods.table_fee_discount_records对应 JSONtable_fee_discount_records.json分析table_fee_discount_records-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键table_fee_adjust_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `table_fee_adjust_id` | BIGINT | Y | | 台费打折 / 调整流水主键 ID。用途在“台费调账表”中唯一标识一条折扣/调账操作;用于跨表关联与去重。 | table_fee_discount_records - id。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - id。 |
| `order_trade_no` | BIGINT | | | 订单交易号。;关联:与 台费流水.json、助教流水.json、小票详情.json 中的同名字段一致,用于把这一条“台费调整”挂接到某笔订单上。 | table_fee_discount_records - order_trade_no。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - order_trade_no。 |
| `order_settle_id` | BIGINT | | dwd_settlement_head(order_settle_id) | 结算单/小票 ID。关联与“小票详情.json”中的 orderSettleId 对应;用于跨表关联与去重。 | table_fee_discount_records - order_settle_id。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - order_settle_id。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID。用途标识记录属于哪一个商户同一个“非球科技”租户用途多租户数据隔离与按租户汇总。 | table_fee_discount_records - tenant_id。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - tenant_id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID本批数据全部为同一家门店朗朗桌球关联与 siteProfile.id 一致;用途:门店维度分组、计营业额、与门店档案关联。 | table_fee_discount_records - site_id。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - site_id。 |
| `table_id` | BIGINT | | dim_table(table_id) | 台桌 ID。关联与 台费流水.json 中的 site_table_id 一致;用于跨表关联与去重。 | table_fee_discount_records - site_table_id。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - site_table_id。 |
| `table_area_id` | BIGINT | | | 租户维度的“台桌区域 ID”。关联与台桌区域配置表对应帮助从区域维度分析打折分布结构上可用用于跨表关联与去重。 | table_fee_discount_records - tenant_table_area_id。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - tenant_table_area_id。 |
| `table_area_name` | VARCHAR(64) | | | 名称字段,用于展示、检索与分组。 | table_fee_discount_records - tableprofile.table_area_name。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - tableprofile.table_area_name。 |
| `tenant_table_area_id` | BIGINT | | | 租户维度的“台桌区域 ID”。关联与台桌区域配置表对应帮助从区域维度分析打折分布结构上可用用于跨表关联与去重。 | table_fee_discount_records - tenant_table_area_id。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - tenant_table_area_id。 |
| `ledger_amount` | NUMERIC(18,2) | | | 通过与 台费流水.json 做对比,可以明确:。 | table_fee_discount_records - ledger_amount。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - ledger_amount。 |
| `ledger_status` | INTEGER | | | 业务状态/类型字段,用于过滤、分类与统计口径区分。 | table_fee_discount_records - ledger_status。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - ledger_status。 |
| `is_delete` | INTEGER | | | 逻辑删除标志:;软删除/作废标记,分析通常需过滤为有效记录。 | table_fee_discount_records - is_delete。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - is_delete。 |
| `adjust_time` | TIMESTAMPTZ | | | 台费调整记录的创建时间,即打折操作被执行的时间戳。 | table_fee_discount_records - create_time。 | table_fee_discount_records.json - data.taiFeeAdjustInfos - create_time。 |
## `dwd_table_fee_log`
- 表说明DWD 明细事实表dwd_table_fee_log。ODS 来源表billiards_ods.table_fee_transactions对应 JSONtable_fee_transactions.json分析table_fee_transactions-Analysis.md。装载/清洗逻辑参考etl_billiards/tasks/dwd_load_task.pyDwdLoadTask
- 主键table_fee_log_id
- 类型:事实/明细
| 字段 | 类型 | 主键 | 关联(推断) | 字段用途(说明) | ODS来源 | JSON字段 |
|---|---|---:|---|---|---|---|
| `table_fee_log_id` | BIGINT | Y | | 台费流水记录主键(事实表主键);用于跨表关联与去重。 | table_fee_transactions - id。 | table_fee_transactions.json - data.siteTableUseDetailsList - id。 |
| `order_trade_no` | BIGINT | | | 订单交易号,是整笔订单的主编号。;关联:与其它 JSON如 助教流水、小票详情、门店销售记录)中的同名字段一致,用于把 同一订单下的台费、助教、商品等多条明细串联。 | table_fee_transactions - order_trade_no。 | table_fee_transactions.json - data.siteTableUseDetailsList - order_trade_no。 |
| `order_settle_id` | BIGINT | | dwd_settlement_head(order_settle_id) | 结算单号/结账 ID对应一次结账操作。关联与“小票详情.json”中的 orderSettleId 对应;用于跨表关联与去重。 | table_fee_transactions - order_settle_id。 | table_fee_transactions.json - data.siteTableUseDetailsList - order_settle_id。 |
| `order_pay_id` | BIGINT | | | 订单支付记录 ID。关联对应“支付记录.json”中的 id 或 relate_id视模型而定用于追踪这条台费最终对应哪一条支付流水。 | table_fee_transactions - order_pay_id。 | table_fee_transactions.json - data.siteTableUseDetailsList - order_pay_id。 |
| `tenant_id` | BIGINT | | | 租户/品牌 ID。本文件所有记录都属于同一租户。关联与所有其它 JSON 中的 tenant_id 一致,用于跨表做“商户维度”的过滤。 | table_fee_transactions - tenant_id。 | table_fee_transactions.json - data.siteTableUseDetailsList - tenant_id。 |
| `site_id` | BIGINT | | dim_site(site_id) | 门店 ID本次数据全部来自同一门店朗朗桌球关联与 siteProfile.id 一致;用途:门店维度分组、计营业额、与门店档案关联。 | table_fee_transactions - site_id。 | table_fee_transactions.json - data.siteTableUseDetailsList - site_id。 |
| `site_table_id` | BIGINT | | | 球台 ID。关联对应“台桌列表”中的 id当前导出文件中有一类与之对应的台桌配置表用于跨表关联与去重。 | table_fee_transactions - site_table_id。 | table_fee_transactions.json - data.siteTableUseDetailsList - site_table_id。 |
| `site_table_area_id` | BIGINT | | | 门店内“台桌区域” ID站在门店物理布局的角度关联对应“门店台桌区域配置表”的主键用于跨表关联与去重。 | table_fee_transactions - site_table_area_id。 | table_fee_transactions.json - data.siteTableUseDetailsList - site_table_area_id。 |
| `site_table_area_name` | VARCHAR(64) | | | 台桌区域的名称,用于门店表现和区域统计。 | table_fee_transactions - site_table_area_name。 | table_fee_transactions.json - data.siteTableUseDetailsList - site_table_area_name。 |
| `tenant_table_area_id` | BIGINT | | | 租户维度的台桌区域 ID品牌层面的同一类区域关联对应租户层面的“区域维表”支持多门店共享同一套区域配置用于跨表关联与去重。 | table_fee_transactions - tenant_table_area_id。 | table_fee_transactions.json - data.siteTableUseDetailsList - tenant_table_area_id。 |
| `member_id` | BIGINT | | dim_member(member_id) | 门店/租户内的会员 ID。关联与“会员档案.jsontenantMemberInfos”内的 id 对应(有部分 ID 完全匹配,部分会员可能不在当前导出页);用于跨表关联与去重。 | table_fee_transactions - member_id。 | table_fee_transactions.json - data.siteTableUseDetailsList - member_id。 |
| `ledger_name` | VARCHAR(64) | | | 台号名称,实际展示给员工/顾客看的桌台编号。 | table_fee_transactions - ledger_name。 | table_fee_transactions.json - data.siteTableUseDetailsList - ledger_name。 |
| `ledger_unit_price` | NUMERIC(18,2) | | | 台费结算时设置的 每小时单价/计费单价。 | table_fee_transactions - ledger_unit_price。 | table_fee_transactions.json - data.siteTableUseDetailsList - ledger_unit_price。 |
| `ledger_count` | INTEGER | | | 台账记录的计费秒数,计费用秒数(应收时长)。 | table_fee_transactions - ledger_count。 | table_fee_transactions.json - data.siteTableUseDetailsList - ledger_count。 |
| `ledger_amount` | NUMERIC(18,2) | | | 按单价与计费时长计算出的原始应收台费金额。 | table_fee_transactions - ledger_amount。 | table_fee_transactions.json - data.siteTableUseDetailsList - ledger_amount。 |
| `real_table_charge_money` | NUMERIC(18,2) | | | 台费中实际向顾客收取的金额(现金/实付维度,未含券方承担或内部调账的那一部分)。 | table_fee_transactions - real_table_charge_money。 | table_fee_transactions.json - data.siteTableUseDetailsList - real_table_charge_money。 |
| `coupon_promotion_amount` | NUMERIC(18,2) | | | 由优惠券/活动/团购(平台/门店促销)承担的优惠金额,直接抵扣在台费上。 | table_fee_transactions - coupon_promotion_amount。 | table_fee_transactions.json - data.siteTableUseDetailsList - coupon_promotion_amount。 |
| `member_discount_amount` | NUMERIC(18,2) | | | 由会员权益产生的优惠金额,例如会员折扣、会员价等。 | table_fee_transactions - member_discount_amount。 | table_fee_transactions.json - data.siteTableUseDetailsList - member_discount_amount。 |
| `adjust_amount` | NUMERIC(18,2) | | | 调整金额/调账金额,用于将台费金额转移或冲减到其它项目,或手工调整。 | table_fee_transactions - adjust_amount。 | table_fee_transactions.json - data.siteTableUseDetailsList - adjust_amount。 |
| `real_table_use_seconds` | INTEGER | | | 实际使用的总秒数(系统真实统计的使用时长)。 | table_fee_transactions - real_table_use_seconds。 | table_fee_transactions.json - data.siteTableUseDetailsList - real_table_use_seconds。 |
| `add_clock_seconds` | INTEGER | | | 加钟秒数,在原有使用基础上追加的时长。 | table_fee_transactions - add_clock_seconds。 | table_fee_transactions.json - data.siteTableUseDetailsList - add_clock_seconds。 |
| `start_use_time` | TIMESTAMPTZ | | | 台开始使用的时间(实际开台时间)。 | table_fee_transactions - start_use_time。 | table_fee_transactions.json - data.siteTableUseDetailsList - start_use_time。 |
| `ledger_end_time` | TIMESTAMPTZ | | | 台账上的计费结束时间。 | table_fee_transactions - ledger_end_time。 | table_fee_transactions.json - data.siteTableUseDetailsList - ledger_end_time。 |
| `create_time` | TIMESTAMPTZ | | | 这条台费流水记录的创建时间,通常接近结账时间;记录源系统创建时间,用于增量同步和口径对齐。 | table_fee_transactions - create_time。 | table_fee_transactions.json - data.siteTableUseDetailsList - create_time。 |
| `ledger_status` | INTEGER | | | 1正常已结算台费。 | table_fee_transactions - ledger_status。 | table_fee_transactions.json - data.siteTableUseDetailsList - ledger_status。 |
| `is_single_order` | INTEGER | | | 1该台费记录对应的是一个独立计费单元单独结算的桌费。 | table_fee_transactions - is_single_order。 | table_fee_transactions.json - data.siteTableUseDetailsList - is_single_order。 |
| `is_delete` | INTEGER | | | 逻辑删除标志:;软删除/作废标记,分析通常需过滤为有效记录。 | table_fee_transactions - is_delete。 | table_fee_transactions.json - data.siteTableUseDetailsList - is_delete。 |
---
生成时间2025-12-15 19:35:55