Files
feiqiu-ETL/etl_billiards/database/schema_ODS_doc copy.sql
2025-12-09 04:57:05 +08:00

1887 lines
246 KiB
SQL
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.
-- 文件schema_ODS_doc.sql
-- 说明ODS 层 DDL表名与示例 JSON 前缀对应,用于本地回放/调试。
-- 编码UTF-8
SET client_encoding TO "UTF8";
DROP SCHEMA IF EXISTS billiards_ods CASCADE;
CREATE SCHEMA IF NOT EXISTS billiards_ods;
CREATE TABLE IF NOT EXISTS billiards_ods.member_profiles (
tenant_id BIGINT,
register_site_id BIGINT,
site_name TEXT,
id BIGINT PRIMARY KEY,
system_member_id BIGINT,
member_card_grade_code BIGINT,
member_card_grade_name TEXT,
mobile TEXT,
nickname TEXT,
point NUMERIC(18,2),
growth_value NUMERIC(18,2),
referrer_member_id BIGINT,
status INT,
user_status INT,
create_time TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.member_profiles IS '对应JSON字段member_profiles.json说明ODS 原始明细表保留payload示例值及对应分析详见 member_profiles-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_profiles.tenant_id IS '对应JSON字段tenant_id说明示例值及对应分析租户/品牌 ID。';
COMMENT ON COLUMN billiards_ods.member_profiles.register_site_id IS '对应JSON字段register_site_id说明示例值及对应分析会员的注册门店 ID。';
COMMENT ON COLUMN billiards_ods.member_profiles.site_name IS '对应JSON字段site_name说明示例值及对应分析注册门店名称属于冗余字段用于直接展示。';
COMMENT ON COLUMN billiards_ods.member_profiles.id IS '对应JSON字段id说明示例值及对应分析这是“租户内会员账户”的主键 ID。';
COMMENT ON COLUMN billiards_ods.member_profiles.system_member_id IS '对应JSON字段system_member_id说明结合其它文件示例值及对应分析这是“系统级会员 ID”在全平台唯一用来把一个会员在不同门店/不同卡类型下的账户统一到一个“人”的维度上。';
COMMENT ON COLUMN billiards_ods.member_profiles.member_card_grade_code IS '对应JSON字段member_card_grade_code说明类型int示例值及对应分析唯一值个数4';
COMMENT ON COLUMN billiards_ods.member_profiles.member_card_grade_name IS '对应JSON字段member_card_grade_name说明示例值及对应分析这是“会员卡种类/等级”的定义字段。';
COMMENT ON COLUMN billiards_ods.member_profiles.mobile IS '对应JSON字段mobile说明示例值及对应分析会员绑定的手机号码。';
COMMENT ON COLUMN billiards_ods.member_profiles.nickname IS '对应JSON字段nickname说明示例值及对应分析会员在当前租户下的显示名称可以是姓名也可以是昵称';
COMMENT ON COLUMN billiards_ods.member_profiles.point IS '对应JSON字段point说明示例值及对应分析当前积分余额这条会员账户的积分值';
COMMENT ON COLUMN billiards_ods.member_profiles.growth_value IS '对应JSON字段growth_value说明按常见会员体系设计示例值及对应分析成长值 / 经验值,用于会员等级晋升的累计指标。';
COMMENT ON COLUMN billiards_ods.member_profiles.referrer_member_id IS '对应JSON字段referrer_member_id说明按命名推断示例值及对应分析推荐人会员 ID用于记录该会员是由哪位老会员推荐。';
COMMENT ON COLUMN billiards_ods.member_profiles.status IS '对应JSON字段status说明按命名推断示例值及对应分析帐户状态偏“卡状态/档案状态”)。';
COMMENT ON COLUMN billiards_ods.member_profiles.user_status IS '对应JSON字段user_status说明结合行业惯例示例值及对应分析用户账号状态偏“用户逻辑”层面的状态';
COMMENT ON COLUMN billiards_ods.member_profiles.create_time IS '对应JSON字段create_time说明示例值及对应分析会员账户的创建时间即这条档案/这张卡在系统中被创建的时间)。';
COMMENT ON COLUMN billiards_ods.member_profiles.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.member_profiles.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.member_profiles.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.member_profiles.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.member_balance_changes (
tenant_id BIGINT,
site_id BIGINT,
register_site_id BIGINT,
registerSiteName TEXT,
paySiteName TEXT,
id BIGINT PRIMARY KEY,
tenant_member_id BIGINT,
tenant_member_card_id BIGINT,
system_member_id BIGINT,
memberName TEXT,
memberMobile TEXT,
card_type_id BIGINT,
memberCardTypeName TEXT,
account_data NUMERIC(18,2),
before NUMERIC(18,2),
after NUMERIC(18,2),
refund_amount NUMERIC(18,2),
from_type INT,
payment_method INT,
relate_id BIGINT,
remark TEXT,
operator_id BIGINT,
operator_name TEXT,
is_delete INT,
create_time TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.member_balance_changes IS '对应JSON字段member_balance_changes.json说明ODS 原始明细表保留payload示例值及对应分析详见 member_balance_changes-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_balance_changes.tenant_id IS '对应JSON字段tenant_id说明租户/商户 ID本数据中是固定值同一品牌/商户)。,示例值及对应分析:?? member_balance_changes-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_balance_changes.site_id IS '对应JSON字段site_id说明表示本次余额变动的发生门店绝大多数也在“朗朗桌球”少数特殊业务活动抵用券结算显示为 site_id=0、paySiteName 为空。,示例值及对应分析:?? member_balance_changes-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_balance_changes.register_site_id IS '对应JSON字段register_site_id说明已在前文说明办卡门店的 ID 与名称,所有记录一致,说明所有卡均在“朗朗桌球”注册。,示例值及对应分析:?? member_balance_changes-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_balance_changes.registerSiteName IS '对应JSON字段registerSiteName说明已在前文说明办卡门店的 ID 与名称,所有记录一致,说明所有卡均在“朗朗桌球”注册。,示例值及对应分析:?? member_balance_changes-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_balance_changes.paySiteName IS '对应JSON字段paySiteName说明表示本次余额变动的发生门店绝大多数也在“朗朗桌球”少数特殊业务活动抵用券结算显示为 site_id=0、paySiteName 为空。,示例值及对应分析:?? member_balance_changes-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_balance_changes.id IS '对应JSON字段id说明余额变更记录的主键 ID唯一标识这一条“账户余额变化事件”。示例值及对应分析?? member_balance_changes-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_balance_changes.tenant_member_id IS '对应JSON字段tenant_member_id说明商户维度的会员 ID租户内会员主键示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.member_balance_changes.tenant_member_card_id IS '对应JSON字段tenant_member_card_id说明会员卡账户 ID在租户内唯一标识某张卡。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.member_balance_changes.system_member_id IS '对应JSON字段system_member_id说明系统级全局会员 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.member_balance_changes.memberName IS '对应JSON字段memberName说明会员姓名或称呼非昵称字段示例值及对应分析说明例如“陈腾鑫”“胡先生”“江先生”等多为中文姓名或带“先生”称呼。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.memberMobile IS '对应JSON字段memberMobile说明会员手机号。示例值及对应分析说明字符型存储完整手机号用来识别会员与联系客户。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.card_type_id IS '对应JSON字段card_type_id说明卡种类型 ID用于区分不同卡种。示例值及对应分析?? member_balance_changes-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_balance_changes.memberCardTypeName IS '对应JSON字段memberCardTypeName说明卡种名称与 card_type_id 一一对应,是一个 卡种枚举名称。,示例值及对应分析:?? member_balance_changes-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_balance_changes.account_data IS '对应JSON字段account_data说明本次变动的金额正数表示增加负数表示减少。示例值及对应分析特点';
COMMENT ON COLUMN billiards_ods.member_balance_changes.before IS '对应JSON字段before说明本次变动前该卡账户的余额示例值及对应分析说明';
COMMENT ON COLUMN billiards_ods.member_balance_changes.after IS '对应JSON字段after说明本次变动后该卡账户的余额示例值及对应分析重要关系';
COMMENT ON COLUMN billiards_ods.member_balance_changes.refund_amount IS '对应JSON字段refund_amount说明推测与退款业务相关的金额字段但在当前这份导出中实际未使用示例值及对应分析可能用于标记“其中有多少金额是以退款形式回流的”或区分“退回余额”和“原路退回”两种模式。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.from_type IS '对应JSON字段from_type说明根据金额符号与 remark 综合推断示例值及对应分析1日常消费扣款';
COMMENT ON COLUMN billiards_ods.member_balance_changes.payment_method IS '对应JSON字段payment_method说明类型int枚举示例值及对应分析值分布';
COMMENT ON COLUMN billiards_ods.member_balance_changes.relate_id IS '对应JSON字段relate_id说明推测关联业务记录的 ID示例值及对应分析例如某次充值记录的 ID、某张订单/结算单 ID、某次活动抵用券核销记录 ID 等。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.remark IS '对应JSON字段remark说明示例值及对应分析当为空时说明这条变动没有额外备注说明。';
COMMENT ON COLUMN billiards_ods.member_balance_changes.operator_id IS '对应JSON字段operator_id说明执行此次余额变更操作的员工 ID。示例值及对应分析?? member_balance_changes-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_balance_changes.operator_name IS '对应JSON字段operator_name说明操作员姓名带职位前缀是对 operator_id 的可读冗余字段。示例值及对应分析9. 状态字段与标志';
COMMENT ON COLUMN billiards_ods.member_balance_changes.is_delete IS '对应JSON字段is_delete说明逻辑删除标记示例值及对应分析0正常';
COMMENT ON COLUMN billiards_ods.member_balance_changes.create_time IS '对应JSON字段create_time说明本条余额变更记录的创建时间通常接近交易发生时间。示例值及对应分析说明可与订单、支付记录的时间做对齐构造时序链路但你现在不要求做时序分析这里只说明结构';
COMMENT ON COLUMN billiards_ods.member_balance_changes.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.member_balance_changes.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.member_balance_changes.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.member_balance_changes.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.member_stored_value_cards (
tenant_id BIGINT,
tenant_member_id BIGINT,
system_member_id BIGINT,
register_site_id BIGINT,
site_name TEXT,
id BIGINT PRIMARY KEY,
member_card_grade_code BIGINT,
member_card_grade_code_name TEXT,
member_card_type_name TEXT,
member_name TEXT,
member_mobile TEXT,
card_type_id BIGINT,
card_no TEXT,
card_physics_type TEXT,
balance NUMERIC(18,2),
denomination NUMERIC(18,2),
table_discount NUMERIC(10,4),
goods_discount NUMERIC(10,4),
assistant_discount NUMERIC(10,4),
assistant_reward_discount NUMERIC(10,4),
table_service_discount NUMERIC(10,4),
assistant_service_discount NUMERIC(10,4),
coupon_discount NUMERIC(10,4),
goods_service_discount NUMERIC(10,4),
assistant_discount_sub_switch INT,
table_discount_sub_switch INT,
goods_discount_sub_switch INT,
assistant_reward_discount_sub_switch INT,
table_service_deduct_radio NUMERIC(10,4),
assistant_service_deduct_radio NUMERIC(10,4),
goods_service_deduct_radio NUMERIC(10,4),
assistant_deduct_radio NUMERIC(10,4),
table_deduct_radio NUMERIC(10,4),
goods_deduct_radio NUMERIC(10,4),
coupon_deduct_radio NUMERIC(10,4),
assistant_reward_deduct_radio NUMERIC(10,4),
tableCardDeduct NUMERIC(18,2),
tableServiceCardDeduct NUMERIC(18,2),
goodsCarDeduct NUMERIC(18,2),
goodsServiceCardDeduct NUMERIC(18,2),
assistantCardDeduct NUMERIC(18,2),
assistantServiceCardDeduct NUMERIC(18,2),
assistantRewardCardDeduct NUMERIC(18,2),
cardSettleDeduct NUMERIC(18,2),
couponCardDeduct NUMERIC(18,2),
deliveryFeeDeduct NUMERIC(18,2),
use_scene INT,
able_cross_site INT,
able_site_transfer INT,
is_allow_give INT,
is_allow_order_deduct INT,
is_delete INT,
bind_password TEXT,
goods_discount_range_type INT,
goodsCategoryId BIGINT,
tableAreaId BIGINT,
effect_site_id BIGINT,
start_time TIMESTAMP,
end_time TIMESTAMP,
disable_start_time TIMESTAMP,
disable_end_time TIMESTAMP,
last_consume_time TIMESTAMP,
create_time TIMESTAMP,
status INT,
sort INT,
tenantAvatar TEXT,
tenantName TEXT,
pdAssisnatLevel TEXT,
cxAssisnatLevel TEXT,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.member_stored_value_cards IS '对应JSON字段member_stored_value_cards.json说明ODS 原始明细表保留payload示例值及对应分析详见 member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tenant_id IS '对应JSON字段tenant_id说明租户/品牌 ID与其他 JSON 中 tenant_id 一致。,示例值及对应分析:?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tenant_member_id IS '对应JSON字段tenant_member_id说明当前商户品牌/租户)中会员的主键 ID。示例值及对应分析枚举特征';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.system_member_id IS '对应JSON字段system_member_id说明系统级会员 ID跨门店统一主键示例值及对应分析枚举特征';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.register_site_id IS '对应JSON字段register_site_id说明卡首次办理的门店 ID。示例值及对应分析对应门店的 site_id本数据中所有卡都是在同一家门店开卡。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.site_name IS '对应JSON字段site_name说明卡归属门店名称视图中的展示字段示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.id IS '对应JSON字段id说明?????? member_stored_value_cards-Analysis.md示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.member_card_grade_code IS '对应JSON字段member_card_grade_code说明卡等级/卡类代码,和下面两个名称字段一一对应。,示例值及对应分析:枚举:';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.member_card_grade_code_name IS '对应JSON字段member_card_grade_code_name说明卡等级/卡类名称。,示例值及对应分析:枚举值(与上面 code 一一对应):';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.member_card_type_name IS '对应JSON字段member_card_type_name说明卡类型名称实际与 member_card_grade_code_name 一致。,示例值及对应分析:枚举值同上。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.member_name IS '对应JSON字段member_name说明持卡会员姓名快照。示例值及对应分析特点存在 null20 张卡没有绑定会员名字)。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.member_mobile IS '对应JSON字段member_mobile说明持卡会员手机号快照。示例值及对应分析特点与 member_name 对应,多数有值,少量为 null。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.card_type_id IS '对应JSON字段card_type_id说明卡种 ID定义“这是哪一种卡”示例值及对应分析枚举按数据分布';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.card_no IS '对应JSON字段card_no说明推测实体卡物理卡号条码号。当前这批卡看起来全部为“无物理卡号”可能是全部虚拟卡或卡号隐藏不导出示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.card_physics_type IS '对应JSON字段card_physics_type说明物理卡类型。示例值及对应分析当前数据全部为 1。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.balance IS '对应JSON字段balance说明当前卡内余额主要针对储值卡、部分券卡示例值及对应分析特征';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.denomination IS '对应JSON字段denomination说明推测面额/初始储值额度。,示例值及对应分析:本页数据未填充此字段;可能在分类型卡(如次卡/券)中才有意义,或者另有配置表。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.table_discount IS '对应JSON字段table_discount说明示例值及对应分析采用“几折”的记法10=不打折9=九折8=八折。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_discount IS '对应JSON字段goods_discount说明示例值及对应分析采用“几折”的记法10=不打折9=九折8=八折。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_discount IS '对应JSON字段assistant_discount说明示例值及对应分析采用“几折”的记法10=不打折9=九折8=八折。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_reward_discount IS '对应JSON字段assistant_reward_discount说明示例值及对应分析采用“几折”的记法10=不打折9=九折8=八折。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.table_service_discount IS '对应JSON字段table_service_discount说明示例值及对应分析采用“几折”的记法10=不打折9=九折8=八折。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_service_discount IS '对应JSON字段assistant_service_discount说明示例值及对应分析采用“几折”的记法10=不打折9=九折8=八折。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.coupon_discount IS '对应JSON字段coupon_discount说明?????? member_stored_value_cards-Analysis.md示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_service_discount IS '对应JSON字段goods_service_discount说明示例值及对应分析采用“几折”的记法10=不打折9=九折8=八折。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_discount_sub_switch IS '对应JSON字段assistant_discount_sub_switch说明推测“折扣是否叠加/替换其他折扣”的开关。,示例值及对应分析:可能枚举:';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.table_discount_sub_switch IS '对应JSON字段table_discount_sub_switch说明推测“折扣是否叠加/替换其他折扣”的开关。,示例值及对应分析:可能枚举:';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_discount_sub_switch IS '对应JSON字段goods_discount_sub_switch说明推测“折扣是否叠加/替换其他折扣”的开关。,示例值及对应分析:可能枚举:';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_reward_discount_sub_switch IS '对应JSON字段assistant_reward_discount_sub_switch说明推测“折扣是否叠加/替换其他折扣”的开关。,示例值及对应分析:可能枚举:';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.table_service_deduct_radio IS '对应JSON字段table_service_deduct_radio说明允许从该卡余额中抵扣的比例百分比示例值及对应分析100.0 表示允许 100% 用卡余额支付该类消费;';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_service_deduct_radio IS '对应JSON字段assistant_service_deduct_radio说明允许从该卡余额中抵扣的比例百分比示例值及对应分析100.0 表示允许 100% 用卡余额支付该类消费;';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_service_deduct_radio IS '对应JSON字段goods_service_deduct_radio说明允许从该卡余额中抵扣的比例百分比示例值及对应分析100.0 表示允许 100% 用卡余额支付该类消费;';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_deduct_radio IS '对应JSON字段assistant_deduct_radio说明允许从该卡余额中抵扣的比例百分比示例值及对应分析100.0 表示允许 100% 用卡余额支付该类消费;';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.table_deduct_radio IS '对应JSON字段table_deduct_radio说明允许从该卡余额中抵扣的比例百分比示例值及对应分析100.0 表示允许 100% 用卡余额支付该类消费;';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_deduct_radio IS '对应JSON字段goods_deduct_radio说明允许从该卡余额中抵扣的比例百分比示例值及对应分析100.0 表示允许 100% 用卡余额支付该类消费;';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.coupon_deduct_radio IS '对应JSON字段coupon_deduct_radio说明允许从该卡余额中抵扣的比例百分比示例值及对应分析100.0 表示允许 100% 用卡余额支付该类消费;';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistant_reward_deduct_radio IS '对应JSON字段assistant_reward_deduct_radio说明?????? member_stored_value_cards-Analysis.md示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tableCardDeduct IS '对应JSON字段tableCardDeduct说明针对台费/商品/助教三类消费的扣卡金额配置(类似“每小时从卡里扣 xx 元”或“每次抵扣 xx 元”的规则)。,示例值及对应分析:当前:所有为 0说明在卡定义层面并没有指定固定扣卡金额而是按照一般储值逻辑消费。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tableServiceCardDeduct IS '对应JSON字段tableServiceCardDeduct说明如果系统中区分“储值金、服务金、奖励金”等子账户这三个字段对应“服务金”子账户的扣款配置。示例值及对应分析当前未启用。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goodsCarDeduct IS '对应JSON字段goodsCarDeduct说明针对台费/商品/助教三类消费的扣卡金额配置(类似“每小时从卡里扣 xx 元”或“每次抵扣 xx 元”的规则)。,示例值及对应分析:当前:所有为 0说明在卡定义层面并没有指定固定扣卡金额而是按照一般储值逻辑消费。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goodsServiceCardDeduct IS '对应JSON字段goodsServiceCardDeduct说明如果系统中区分“储值金、服务金、奖励金”等子账户这三个字段对应“服务金”子账户的扣款配置。示例值及对应分析当前未启用。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistantCardDeduct IS '对应JSON字段assistantCardDeduct说明针对台费/商品/助教三类消费的扣卡金额配置(类似“每小时从卡里扣 xx 元”或“每次抵扣 xx 元”的规则)。,示例值及对应分析:当前:所有为 0说明在卡定义层面并没有指定固定扣卡金额而是按照一般储值逻辑消费。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistantServiceCardDeduct IS '对应JSON字段assistantServiceCardDeduct说明如果系统中区分“储值金、服务金、奖励金”等子账户这三个字段对应“服务金”子账户的扣款配置。示例值及对应分析当前未启用。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.assistantRewardCardDeduct IS '对应JSON字段assistantRewardCardDeduct说明助教奖励金方向扣款的配置。示例值及对应分析当前未启用。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.cardSettleDeduct IS '对应JSON字段cardSettleDeduct说明已在扣卡规则部分说明当前为 0。示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.couponCardDeduct IS '对应JSON字段couponCardDeduct说明与卡绑定的“券额度扣除配置”。示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.deliveryFeeDeduct IS '对应JSON字段deliveryFeeDeduct说明配送费可否/多少从卡中抵扣目前无业务发生。示例值及对应分析综合来看本门店的卡片在“规则配置层”预留了大量细粒度控制字段但目前实际使用只体现在“balance”和“可用范围”折扣和具体扣卡规则基本都未启用全部保持默认值 10 折、100%比例、0 扣款),真正扣款逻辑在交易流水中体现。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.use_scene IS '对应JSON字段use_scene说明卡使用场景说明比如“仅店内使用”“仅团建”等本门店尚未使用此字段。示例值及对应分析2. 会员信息与关联字段';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.able_cross_site IS '对应JSON字段able_cross_site说明是否允许跨店使用。示例值及对应分析1可以跨门店使用';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.able_site_transfer IS '对应JSON字段able_site_transfer说明?????? member_stored_value_cards-Analysis.md示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.is_allow_give IS '对应JSON字段is_allow_give说明是否允许转赠/转让给其他会员。示例值及对应分析0不允许';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.is_allow_order_deduct IS '对应JSON字段is_allow_order_deduct说明是否允许在“订单层面统一扣款”。示例值及对应分析0不允许仅按项目扣卡';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.is_delete IS '对应JSON字段is_delete说明逻辑删除标志。示例值及对应分析0未删除';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.bind_password IS '对应JSON字段bind_password说明卡绑定密码用于消费或查询验证目前未启用示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goods_discount_range_type IS '对应JSON字段goods_discount_range_type说明?????? member_stored_value_cards-Analysis.md示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.goodsCategoryId IS '对应JSON字段goodsCategoryId说明已上文说明均为扩展限定维度当前全部为空列表。示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tableAreaId IS '对应JSON字段tableAreaId说明已上文说明均为扩展限定维度当前全部为空列表。示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.effect_site_id IS '对应JSON字段effect_site_id说明推测卡片限定生效门店 ID。示例值及对应分析为 0 时,配合 able_cross_site=1可解释为“所有门店可用”。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.start_time IS '对应JSON字段start_time说明卡片生效开始时间有效期起始示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.end_time IS '对应JSON字段end_time说明卡片有效期结束时间。示例值及对应分析start_time / end_time 组合就是卡的有效期。不同卡种有效期配置不同,如储值卡长效、月卡固定一个月等。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.disable_start_time IS '对应JSON字段disable_start_time说明停用时间段比如临时冻结卡的起止时间示例值及对应分析当前未启用所有卡都是“未进入停用窗口”。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.disable_end_time IS '对应JSON字段disable_end_time说明停用时间段比如临时冻结卡的起止时间示例值及对应分析当前未启用所有卡都是“未进入停用窗口”。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.last_consume_time IS '对应JSON字段last_consume_time说明最近一次消费时间。示例值及对应分析特点';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.create_time IS '对应JSON字段create_time说明卡片创建时间开卡时间示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.status IS '对应JSON字段status说明推测示例值及对应分析1正常可用';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.sort IS '对应JSON字段sort说明在前端展示或某些列表中的排序权重。示例值及对应分析具体取值分布不重要主要反映展示优先级。';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tenantAvatar IS '对应JSON字段tenantAvatar说明品牌头像 URL未配置示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.tenantName IS '对应JSON字段tenantName说明租户/品牌名称(当前导出为空)。,示例值及对应分析:?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.pdAssisnatLevel IS '对应JSON字段pdAssisnatLevel说明已上文说明均为扩展限定维度当前全部为空列表。示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.cxAssisnatLevel IS '对应JSON字段cxAssisnatLevel说明已上文说明均为扩展限定维度当前全部为空列表。示例值及对应分析?? member_stored_value_cards-Analysis.md';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.member_stored_value_cards.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.recharge_settlements (
id BIGINT PRIMARY KEY,
tenantid BIGINT,
siteid BIGINT,
sitename TEXT,
balanceamount NUMERIC(18,2),
cardamount NUMERIC(18,2),
cashamount NUMERIC(18,2),
couponamount NUMERIC(18,2),
createtime TIMESTAMPTZ,
memberid BIGINT,
membername TEXT,
tenantmembercardid BIGINT,
membercardtypename TEXT,
memberphone TEXT,
tableid BIGINT,
consumemoney NUMERIC(18,2),
onlineamount NUMERIC(18,2),
operatorid BIGINT,
operatorname TEXT,
revokeorderid BIGINT,
revokeordername TEXT,
revoketime TIMESTAMPTZ,
payamount NUMERIC(18,2),
pointamount NUMERIC(18,2),
refundamount NUMERIC(18,2),
settlename TEXT,
settlerelateid BIGINT,
settlestatus INT,
settletype INT,
paytime TIMESTAMPTZ,
roundingamount NUMERIC(18,2),
paymentmethod INT,
adjustamount NUMERIC(18,2),
assistantcxmoney NUMERIC(18,2),
assistantpdmoney NUMERIC(18,2),
couponsaleamount NUMERIC(18,2),
memberdiscountamount NUMERIC(18,2),
tablechargemoney NUMERIC(18,2),
goodsmoney NUMERIC(18,2),
realgoodsmoney NUMERIC(18,2),
servicemoney NUMERIC(18,2),
prepaymoney NUMERIC(18,2),
salesmanname TEXT,
orderremark TEXT,
salesmanuserid BIGINT,
canberevoked BOOLEAN,
pointdiscountprice NUMERIC(18,2),
pointdiscountcost NUMERIC(18,2),
activitydiscount NUMERIC(18,2),
serialnumber BIGINT,
assistantmanualdiscount NUMERIC(18,2),
allcoupondiscount NUMERIC(18,2),
goodspromotionmoney NUMERIC(18,2),
assistantpromotionmoney NUMERIC(18,2),
isusecoupon BOOLEAN,
isusediscount BOOLEAN,
isactivity BOOLEAN,
isbindmember BOOLEAN,
isfirst INT,
rechargecardamount NUMERIC(18,2),
giftcardamount NUMERIC(18,2),
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.recharge_settlements IS '对应JSON字段recharge_settlements.json说明ODS 原始明细表保留payload示例值及对应分析详见 recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.id IS '对应JSON字段id说明本条充值结算记录的主键 ID唯一标识一条充值/撤销记录示例值及对应分析唯一性74 条记录全部不同。';
COMMENT ON COLUMN billiards_ods.recharge_settlements.tenantid IS '对应JSON字段tenantid说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.siteid IS '对应JSON字段siteid说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.sitename IS '对应JSON字段sitename说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.balanceamount IS '对应JSON字段balanceamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.cardamount IS '对应JSON字段cardamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.cashamount IS '对应JSON字段cashamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.couponamount IS '对应JSON字段couponamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.createtime IS '对应JSON字段createtime说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.memberid IS '对应JSON字段memberid说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.membername IS '对应JSON字段membername说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.tenantmembercardid IS '对应JSON字段tenantmembercardid说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.membercardtypename IS '对应JSON字段membercardtypename说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.memberphone IS '对应JSON字段memberphone说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.tableid IS '对应JSON字段tableid说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.consumemoney IS '对应JSON字段consumemoney说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.onlineamount IS '对应JSON字段onlineamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.operatorid IS '对应JSON字段operatorid说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.operatorname IS '对应JSON字段operatorname说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.revokeorderid IS '对应JSON字段revokeorderid说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.revokeordername IS '对应JSON字段revokeordername说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.revoketime IS '对应JSON字段revoketime说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.payamount IS '对应JSON字段payamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.pointamount IS '对应JSON字段pointamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.refundamount IS '对应JSON字段refundamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.settlename IS '对应JSON字段settlename说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.settlerelateid IS '对应JSON字段settlerelateid说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.settlestatus IS '对应JSON字段settlestatus说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.settletype IS '对应JSON字段settletype说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.paytime IS '对应JSON字段paytime说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.roundingamount IS '对应JSON字段roundingamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.paymentmethod IS '对应JSON字段paymentmethod说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.adjustamount IS '对应JSON字段adjustamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.assistantcxmoney IS '对应JSON字段assistantcxmoney说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.assistantpdmoney IS '对应JSON字段assistantpdmoney说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.couponsaleamount IS '对应JSON字段couponsaleamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.memberdiscountamount IS '对应JSON字段memberdiscountamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.tablechargemoney IS '对应JSON字段tablechargemoney说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.goodsmoney IS '对应JSON字段goodsmoney说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.realgoodsmoney IS '对应JSON字段realgoodsmoney说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.servicemoney IS '对应JSON字段servicemoney说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.prepaymoney IS '对应JSON字段prepaymoney说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.salesmanname IS '对应JSON字段salesmanname说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.orderremark IS '对应JSON字段orderremark说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.salesmanuserid IS '对应JSON字段salesmanuserid说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.canberevoked IS '对应JSON字段canberevoked说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.pointdiscountprice IS '对应JSON字段pointdiscountprice说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.pointdiscountcost IS '对应JSON字段pointdiscountcost说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.activitydiscount IS '对应JSON字段activitydiscount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.serialnumber IS '对应JSON字段serialnumber说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.assistantmanualdiscount IS '对应JSON字段assistantmanualdiscount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.allcoupondiscount IS '对应JSON字段allcoupondiscount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.goodspromotionmoney IS '对应JSON字段goodspromotionmoney说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.assistantpromotionmoney IS '对应JSON字段assistantpromotionmoney说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.isusecoupon IS '对应JSON字段isusecoupon说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.isusediscount IS '对应JSON字段isusediscount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.isactivity IS '对应JSON字段isactivity说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.isbindmember IS '对应JSON字段isbindmember说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.isfirst IS '对应JSON字段isfirst说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.rechargecardamount IS '对应JSON字段rechargecardamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.giftcardamount IS '对应JSON字段giftcardamount说明?????? recharge_settlements-Analysis.md示例值及对应分析?? recharge_settlements-Analysis.md';
COMMENT ON COLUMN billiards_ods.recharge_settlements.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.recharge_settlements.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.recharge_settlements.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.recharge_settlements.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.settlement_records (
id BIGINT PRIMARY KEY,
tenantid BIGINT,
siteid BIGINT,
sitename TEXT,
balanceamount NUMERIC(18,2),
cardamount NUMERIC(18,2),
cashamount NUMERIC(18,2),
couponamount NUMERIC(18,2),
createtime TIMESTAMPTZ,
memberid BIGINT,
membername TEXT,
tenantmembercardid BIGINT,
membercardtypename TEXT,
memberphone TEXT,
tableid BIGINT,
consumemoney NUMERIC(18,2),
onlineamount NUMERIC(18,2),
operatorid BIGINT,
operatorname TEXT,
revokeorderid BIGINT,
revokeordername TEXT,
revoketime TIMESTAMPTZ,
payamount NUMERIC(18,2),
pointamount NUMERIC(18,2),
refundamount NUMERIC(18,2),
settlename TEXT,
settlerelateid BIGINT,
settlestatus INT,
settletype INT,
paytime TIMESTAMPTZ,
roundingamount NUMERIC(18,2),
paymentmethod INT,
adjustamount NUMERIC(18,2),
assistantcxmoney NUMERIC(18,2),
assistantpdmoney NUMERIC(18,2),
couponsaleamount NUMERIC(18,2),
memberdiscountamount NUMERIC(18,2),
tablechargemoney NUMERIC(18,2),
goodsmoney NUMERIC(18,2),
realgoodsmoney NUMERIC(18,2),
servicemoney NUMERIC(18,2),
prepaymoney NUMERIC(18,2),
salesmanname TEXT,
orderremark TEXT,
salesmanuserid BIGINT,
canberevoked BOOLEAN,
pointdiscountprice NUMERIC(18,2),
pointdiscountcost NUMERIC(18,2),
activitydiscount NUMERIC(18,2),
serialnumber BIGINT,
assistantmanualdiscount NUMERIC(18,2),
allcoupondiscount NUMERIC(18,2),
goodspromotionmoney NUMERIC(18,2),
assistantpromotionmoney NUMERIC(18,2),
isusecoupon BOOLEAN,
isusediscount BOOLEAN,
isactivity BOOLEAN,
isbindmember BOOLEAN,
isfirst INT,
rechargecardamount NUMERIC(18,2),
giftcardamount NUMERIC(18,2),
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.settlement_records IS '对应JSON字段settlement_records.json说明ODS 原始明细表保留payload示例值及对应分析详见 settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.id IS '对应JSON字段id说明结账记录主键 ID订单结算 ID示例值及对应分析结构关联';
COMMENT ON COLUMN billiards_ods.settlement_records.tenantid IS '对应JSON字段tenantid说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.siteid IS '对应JSON字段siteid说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.sitename IS '对应JSON字段sitename说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.balanceamount IS '对应JSON字段balanceamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.cardamount IS '对应JSON字段cardamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.cashamount IS '对应JSON字段cashamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.couponamount IS '对应JSON字段couponamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.createtime IS '对应JSON字段createtime说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.memberid IS '对应JSON字段memberid说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.membername IS '对应JSON字段membername说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.tenantmembercardid IS '对应JSON字段tenantmembercardid说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.membercardtypename IS '对应JSON字段membercardtypename说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.memberphone IS '对应JSON字段memberphone说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.tableid IS '对应JSON字段tableid说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.consumemoney IS '对应JSON字段consumemoney说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.onlineamount IS '对应JSON字段onlineamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.operatorid IS '对应JSON字段operatorid说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.operatorname IS '对应JSON字段operatorname说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.revokeorderid IS '对应JSON字段revokeorderid说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.revokeordername IS '对应JSON字段revokeordername说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.revoketime IS '对应JSON字段revoketime说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.payamount IS '对应JSON字段payamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.pointamount IS '对应JSON字段pointamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.refundamount IS '对应JSON字段refundamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.settlename IS '对应JSON字段settlename说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.settlerelateid IS '对应JSON字段settlerelateid说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.settlestatus IS '对应JSON字段settlestatus说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.settletype IS '对应JSON字段settletype说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.paytime IS '对应JSON字段paytime说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.roundingamount IS '对应JSON字段roundingamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.paymentmethod IS '对应JSON字段paymentmethod说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.adjustamount IS '对应JSON字段adjustamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.assistantcxmoney IS '对应JSON字段assistantcxmoney说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.assistantpdmoney IS '对应JSON字段assistantpdmoney说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.couponsaleamount IS '对应JSON字段couponsaleamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.memberdiscountamount IS '对应JSON字段memberdiscountamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.tablechargemoney IS '对应JSON字段tablechargemoney说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.goodsmoney IS '对应JSON字段goodsmoney说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.realgoodsmoney IS '对应JSON字段realgoodsmoney说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.servicemoney IS '对应JSON字段servicemoney说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.prepaymoney IS '对应JSON字段prepaymoney说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.salesmanname IS '对应JSON字段salesmanname说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.orderremark IS '对应JSON字段orderremark说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.salesmanuserid IS '对应JSON字段salesmanuserid说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.canberevoked IS '对应JSON字段canberevoked说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.pointdiscountprice IS '对应JSON字段pointdiscountprice说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.pointdiscountcost IS '对应JSON字段pointdiscountcost说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.activitydiscount IS '对应JSON字段activitydiscount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.serialnumber IS '对应JSON字段serialnumber说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.assistantmanualdiscount IS '对应JSON字段assistantmanualdiscount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.allcoupondiscount IS '对应JSON字段allcoupondiscount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.goodspromotionmoney IS '对应JSON字段goodspromotionmoney说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.assistantpromotionmoney IS '对应JSON字段assistantpromotionmoney说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.isusecoupon IS '对应JSON字段isusecoupon说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.isusediscount IS '对应JSON字段isusediscount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.isactivity IS '对应JSON字段isactivity说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.isbindmember IS '对应JSON字段isbindmember说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.isfirst IS '对应JSON字段isfirst说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.rechargecardamount IS '对应JSON字段rechargecardamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.giftcardamount IS '对应JSON字段giftcardamount说明?????? settlement_records-Analysis.md示例值及对应分析?? settlement_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_records.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.settlement_records.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.settlement_records.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.settlement_records.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.assistant_cancellation_records (
id BIGINT PRIMARY KEY,
siteId BIGINT,
siteProfile JSONB,
assistantName TEXT,
assistantAbolishAmount NUMERIC(18,2),
assistantOn INT,
pdChargeMinutes INT,
tableAreaId BIGINT,
tableArea TEXT,
tableId BIGINT,
tableName TEXT,
trashReason TEXT,
createTime TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.assistant_cancellation_records IS '对应JSON字段assistant_cancellation_records.json说明ODS 原始明细表保留payload示例值及对应分析详见 assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.id IS '对应JSON字段id说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.siteId IS '对应JSON字段siteId说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.siteProfile IS '对应JSON字段siteProfile说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.assistantName IS '对应JSON字段assistantName说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.assistantAbolishAmount IS '对应JSON字段assistantAbolishAmount说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.assistantOn IS '对应JSON字段assistantOn说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.pdChargeMinutes IS '对应JSON字段pdChargeMinutes说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.tableAreaId IS '对应JSON字段tableAreaId说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.tableArea IS '对应JSON字段tableArea说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.tableId IS '对应JSON字段tableId说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.tableName IS '对应JSON字段tableName说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.trashReason IS '对应JSON字段trashReason说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.createTime IS '对应JSON字段createTime说明?????? assistant_cancellation_records-Analysis.md示例值及对应分析?? assistant_cancellation_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.assistant_cancellation_records.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.assistant_accounts_master (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
assistant_no TEXT,
nickname TEXT,
real_name TEXT,
mobile TEXT,
team_id BIGINT,
team_name TEXT,
user_id BIGINT,
level TEXT,
assistant_status INT,
work_status INT,
leave_status INT,
entry_time TIMESTAMP,
resign_time TIMESTAMP,
start_time TIMESTAMP,
end_time TIMESTAMP,
create_time TIMESTAMP,
update_time TIMESTAMP,
order_trade_no TEXT,
staff_id BIGINT,
staff_profile_id BIGINT,
system_role_id BIGINT,
avatar TEXT,
gender INT,
height NUMERIC(18,2),
weight NUMERIC(18,2),
job_num TEXT,
show_status INT,
show_sort INT,
sum_grade NUMERIC(18,2),
assistant_grade NUMERIC(18,2),
get_grade_times INT,
introduce TEXT,
video_introduction_url TEXT,
group_id BIGINT,
group_name TEXT,
shop_name TEXT,
charge_way INT,
entry_type INT,
allow_cx INT,
is_guaranteed INT,
salary_grant_enabled INT,
light_status INT,
online_status INT,
is_delete INT,
cx_unit_price NUMERIC(18,2),
pd_unit_price NUMERIC(18,2),
last_table_id BIGINT,
last_table_name TEXT,
person_org_id BIGINT,
serial_number BIGINT,
is_team_leader INT,
criticism_status INT,
ding_talk_synced INT,
site_light_cfg_id BIGINT,
light_equipment_id TEXT,
entry_sign_status INT,
resign_sign_status INT,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.assistant_accounts_master IS '对应JSON字段assistant_accounts_master.json说明ODS 原始明细表保留payload示例值及对应分析详见 assistant_accounts_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.id IS '对应JSON字段id说明助教账号主键 ID在“助教流水.json”中对应 site_assistant_id。示例值及对应分析作用所有与助教相关的事实表助教流水、助教排班等都会通过这个 ID 关联到该维表。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.tenant_id IS '对应JSON字段tenant_id说明品牌/租户 ID对应“非球科技”系统中该商户的唯一标识。示例值及对应分析用途多门店时用来区分不同商户。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.site_id IS '对应JSON字段site_id说明门店 ID对应本次数据的这家球房朗朗桌球示例值及对应分析关联与其它 JSON台费流水、库存、销售等中的 site_id 一致。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.assistant_no IS '对应JSON字段assistant_no说明结合字段名推测助教工号 / 编号,便于业务侧识别。,示例值及对应分析:关联:在“助教流水.json”中有 assistantNo与此字段对应。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.nickname IS '对应JSON字段nickname说明助教在前台展示的昵称如“佳怡”“周周”“球球”等。示例值及对应分析用途与真实姓名区分用于顾客侧展示。如在助教流水中 nickname 就是这个值。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.real_name IS '对应JSON字段real_name说明助教真实姓名如“何海婷”“梁婷婷”等。示例值及对应分析关联在“助教流水.json”的 assistantName 与此一致。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.mobile IS '对应JSON字段mobile说明助教手机号用于登录绑定、通知、钉钉同步等。示例值及对应分析?? assistant_accounts_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.team_id IS '对应JSON字段team_id说明助教所属团队 ID。示例值及对应分析关联在“助教流水.json”中 assistant_team_id 与此一致。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.team_name IS '对应JSON字段team_name说明团队名称展示用和 team_id 一一对应。示例值及对应分析group_id';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.level IS '对应JSON字段level说明结合“助教流水中的 assistant_level / levelName 推测”示例值及对应分析8助教管理/管理员(和流水里的 "助教管理" 对应)';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.assistant_status IS '对应JSON字段assistant_status说明推测账号启用状态示例值及对应分析1启用';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.work_status IS '对应JSON字段work_status说明示例值及对应分析1在岗/可排班';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.leave_status IS '对应JSON字段leave_status说明类型int枚举。示例值及对应分析观测';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.entry_time IS '对应JSON字段entry_time说明入职时间。示例值及对应分析?? assistant_accounts_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.resign_time IS '对应JSON字段resign_time说明离职日期使用“远未来日期”作为“未离职”的占位。示例值及对应分析entry_type';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.start_time IS '对应JSON字段start_time说明推测当前配置生效的开始日期。示例值及对应分析?? assistant_accounts_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.end_time IS '对应JSON字段end_time说明当前配置生效的结束日期例如一个周期性的排班/合同周期示例值及对应分析last_table_id';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.create_time IS '对应JSON字段create_time说明账号创建时间。示例值及对应分析?? assistant_accounts_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.update_time IS '对应JSON字段update_time说明账号最近一次被修改的时间例如修改等级、昵称等示例值及对应分析?? assistant_accounts_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.order_trade_no IS '对应JSON字段order_trade_no说明推测该助教最近一次关联的订单号用于快速跳转或回溯最近服务行为。示例值及对应分析9. 灯控、钉钉等系统集成相关字段';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.staff_id IS '对应JSON字段staff_id说明推测预留给“人事系统员工 ID”的字段目前未接入或未启用。示例值及对应分析?? assistant_accounts_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.staff_profile_id IS '对应JSON字段staff_profile_id说明推测人事档案 ID与第三方 HR 系统或内部员工档案集成使用当前未启用。示例值及对应分析4. 等级、计费与薪资配置字段';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.system_role_id IS '对应JSON字段system_role_id说明?????? assistant_accounts_master-Analysis.md示例值及对应分析?? assistant_accounts_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.avatar IS '对应JSON字段avatar说明助教头像地址。示例值及对应分析introduce';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.gender IS '对应JSON字段gender说明结合常见约定与值分布推测示例值及对应分析0未填/保密';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.show_status IS '对应JSON字段show_status说明推测前台展示状态示例值及对应分析1在助教选择界面展示。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.show_sort IS '对应JSON字段show_sort说明前台展示排序权重值越小/越大对应不同的排序策略(当前看起来与 assistant_no 有一定对应关系示例值及对应分析online_status';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.sum_grade IS '对应JSON字段sum_grade说明评分总和用于计算平均分assistant_grade = sum_grade / get_grade_times当前为 0。示例值及对应分析?? assistant_accounts_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.get_grade_times IS '对应JSON字段get_grade_times说明累计被评分次数。示例值及对应分析charge_way';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.video_introduction_url IS '对应JSON字段video_introduction_url说明助教个人视频介绍地址。示例值及对应分析height';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.user_id IS '对应JSON字段user_id说明账号对应的用户 ID/员工 ID用于跨表关联。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.height IS '对应JSON字段height说明身高数值可空。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.weight IS '对应JSON字段weight说明体重数值可空。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.job_num IS '对应JSON字段job_num说明工号/岗位编号,保留原始取值。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.assistant_grade IS '对应JSON字段assistant_grade说明平均评分通常 = sum_grade/get_grade_times。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.introduce IS '对应JSON字段introduce说明个人简介/自我介绍,可空。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.group_id IS '对应JSON字段group_id说明分组/自定义分组 ID。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.group_name IS '对应JSON字段group_name说明分组名称。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.shop_name IS '对应JSON字段shop_name说明门店名称冗余。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.charge_way IS '对应JSON字段charge_way说明收费方式枚举保留原值。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.entry_type IS '对应JSON字段entry_type说明入职类型枚举保留原值。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.allow_cx IS '对应JSON字段allow_cx说明是否允许超休/冲销0/1';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.is_guaranteed IS '对应JSON字段is_guaranteed说明是否保底0/1';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.salary_grant_enabled IS '对应JSON字段salary_grant_enabled说明薪资发放/补贴开关,枚举。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.light_status IS '对应JSON字段light_status说明灯控状态/模式,保留原值。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.online_status IS '对应JSON字段online_status说明在线状态标记0/1等';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.is_delete IS '对应JSON字段is_delete说明逻辑删除标记0=有效1=删除)。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.cx_unit_price IS '对应JSON字段cx_unit_price说明超休单价/冲销单价,金额类。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.pd_unit_price IS '对应JSON字段pd_unit_price说明排钟/点钟单价,金额类。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.last_table_id IS '对应JSON字段last_table_id说明最近服务桌台 ID。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.last_table_name IS '对应JSON字段last_table_name说明最近服务桌台名称。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.person_org_id IS '对应JSON字段person_org_id说明人员组织 ID/部门 ID。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.serial_number IS '对应JSON字段serial_number说明序列号/排序号,保留原值。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.is_team_leader IS '对应JSON字段is_team_leader说明是否组长0/1';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.criticism_status IS '对应JSON字段criticism_status说明处罚/警告状态标记,枚举。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.ding_talk_synced IS '对应JSON字段ding_talk_synced说明是否已同步钉钉0/1';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.site_light_cfg_id IS '对应JSON字段site_light_cfg_id说明门店灯控配置 ID。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.light_equipment_id IS '对应JSON字段light_equipment_id说明灯控设备 ID/硬件编号。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.entry_sign_status IS '对应JSON字段entry_sign_status说明入职签署状态枚举。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.resign_sign_status IS '对应JSON字段resign_sign_status说明离职签署状态枚举。';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.assistant_accounts_master.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.assistant_service_records (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
siteProfile JSONB,
site_table_id BIGINT,
order_settle_id BIGINT,
order_trade_no TEXT,
order_pay_id BIGINT,
order_assistant_id BIGINT,
order_assistant_type INT,
assistantName TEXT,
assistantNo TEXT,
assistant_level TEXT,
assistant_team_id BIGINT,
nickname TEXT,
ledger_name TEXT,
ledger_group_name TEXT,
ledger_amount NUMERIC(18,2),
ledger_count NUMERIC(18,4),
ledger_unit_price NUMERIC(18,4),
ledger_status INT,
ledger_start_time TIMESTAMP,
ledger_end_time TIMESTAMP,
manual_discount_amount NUMERIC(18,2),
member_discount_amount NUMERIC(18,2),
coupon_deduct_money NUMERIC(18,2),
service_money NUMERIC(18,2),
projected_income NUMERIC(18,2),
real_use_seconds INT,
income_seconds INT,
start_use_time TIMESTAMP,
last_use_time TIMESTAMP,
create_time TIMESTAMP,
is_single_order INT,
is_delete INT,
is_trash INT,
trash_reason TEXT,
trash_applicant_id BIGINT,
trash_applicant_name TEXT,
operator_id BIGINT,
operator_name TEXT,
salesman_name TEXT,
salesman_org_id BIGINT,
salesman_user_id BIGINT,
person_org_id BIGINT,
add_clock INT,
returns_clock INT,
composite_grade NUMERIC(10,2),
composite_grade_time TIMESTAMP,
skill_grade NUMERIC(10,2),
service_grade NUMERIC(10,2),
sum_grade NUMERIC(10,2),
grade_status INT,
get_grade_times INT,
is_not_responding INT,
is_confirm INT,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.assistant_service_records IS '对应JSON字段assistant_service_records.json说明ODS 原始明细表保留payload示例值及对应分析详见 assistant_service_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_service_records.id IS '对应JSON字段id说明本条助教流水记录的主键 ID流水唯一标识示例值及对应分析作用在系统内部唯一定位这一条助教服务记录。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.tenant_id IS '对应JSON字段tenant_id说明租户/品牌 ID你这份数据中是固定值同一个商户示例值及对应分析关联全库所有表都有作为“商户维度”的过滤键。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.site_id IS '对应JSON字段site_id说明门店 ID本数据中指“朗朗桌球”这一家门店。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.assistant_service_records.siteProfile IS '对应JSON字段siteProfile说明门店信息快照包括 id、shop_name、address 等,和其他 JSON 里的 siteProfile 一致。,示例值及对应分析:作用:冗余门店信息,方便查看(而不是每次都联表看门店档案)。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.site_table_id IS '对应JSON字段site_table_id说明球台 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.assistant_service_records.order_settle_id IS '对应JSON字段order_settle_id说明订单结算 ID相当于“结账单号”的内部主键。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.assistant_service_records.order_trade_no IS '对应JSON字段order_trade_no说明订单交易号整个订单层面的编号。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.assistant_service_records.order_pay_id IS '对应JSON字段order_pay_id说明关联到“支付记录”的主键 ID。示例值及对应分析作用可以和支付记录中的 id / relate_id 等字段对应,找到这条助教服务对应的支付流水。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.order_assistant_id IS '对应JSON字段order_assistant_id说明订单中“助教项目明细”的内部 ID。示例值及对应分析作用如果订单里有多条助教项目比如换助教、多个时间段此字段唯一标识这一条助教明细。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.order_assistant_type IS '对应JSON字段order_assistant_type说明推测示例值及对应分析1常规助教服务主课/基础课)。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.assistantName IS '对应JSON字段assistantName说明助教姓名如“何海婷”“胡敏”等。示例值及对应分析备注和助教账号档案里的 real_name 一致。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.assistantNo IS '对应JSON字段assistantNo说明助教编号例如 "27"。,示例值及对应分析:关联:在助教账号表里也有 assistant_no 字段,对应工号/编号。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.assistant_level IS '对应JSON字段assistant_level说明助教等级名称与 assistant_level 一一对应(初级/中级/高级/助教管理)。,示例值及对应分析:备注:属于展示用的冗余字段。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.assistant_team_id IS '对应JSON字段assistant_team_id说明当前这条助教服务所对应的“课程/技能名称”。,示例值及对应分析:当 order_assistant_type = 1 时,多为“基础课”。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.nickname IS '对应JSON字段nickname说明助教对外昵称如“佳怡”“周周”“球球”等。示例值及对应分析说明从数据看这个 nickname 是“助教昵称”,不是顾客昵称(容易混淆)。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_name IS '对应JSON字段ledger_name说明?????? assistant_service_records-Analysis.md示例值及对应分析?? assistant_service_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_group_name IS '对应JSON字段ledger_group_name说明推测助教项目所属的“计费分组/套餐分组名称”,例如某种助教套餐或业务组名称。,示例值及对应分析:目前未被实际使用。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_amount IS '对应JSON字段ledger_amount说明按标准单价计算出来的应收金额近似 = ledger_unit_price × income_seconds / 3600示例值及对应分析说明从数据看这个金额对应“按原价计费”的金额未扣除各种优惠。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_count IS '对应JSON字段ledger_count说明台账记录的计时总秒数。示例值及对应分析特点';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_unit_price IS '对应JSON字段ledger_unit_price说明助教服务 标准单价(通常是标价:每小时、每节课的单价)。,示例值及对应分析:特点:如 98.0、108.0、190.0 等。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_status IS '对应JSON字段ledger_status说明推测助教流水记录状态示例值及对应分析1正常有效。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_start_time IS '对应JSON字段ledger_start_time说明台账层面记录的开始时间。示例值及对应分析说明与 start_use_time 在当前数据中完全一致,可以视为“计费起始时间”。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.ledger_end_time IS '对应JSON字段ledger_end_time说明台账层面的结束时间。示例值及对应分析说明与 last_use_time 一致,可以视为“计费结束时间”。对于 real_use_seconds = 0 的记录,开始和结束时间相同,说明只是预约/录入,并未实际服务。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.manual_discount_amount IS '对应JSON字段manual_discount_amount说明收银员手动给予的减免金额人工改价示例值及对应分析当前导出时间段内暂未出现手动打折的情况。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.member_discount_amount IS '对应JSON字段member_discount_amount说明由会员卡折扣产生的优惠金额。示例值及对应分析说明尽管字段里是 0但实际折扣可能已经体现在 projected_income 与 ledger_amount 的差额中,这里只是未单独拆出。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.coupon_deduct_money IS '对应JSON字段coupon_deduct_money说明由“优惠券/代金券/团购券”等 直接抵扣到这条助教服务上的金额。,示例值及对应分析:说明:';
COMMENT ON COLUMN billiards_ods.assistant_service_records.service_money IS '对应JSON字段service_money说明推测用于记录与助教结算的金额平台预留的“成本/分成”字段)。,示例值及对应分析:当前数据中未启用这个机制,所以全为 0。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.projected_income IS '对应JSON字段projected_income说明实际结算计入门店的金额已经考虑折扣、卡权益、券等后的结果示例值及对应分析从数据projected_income 明显低于 ledger_amount说明中间有折扣但折扣的明细并不全由下面几个字段体现很多是卡权益内生折扣';
COMMENT ON COLUMN billiards_ods.assistant_service_records.real_use_seconds IS '对应JSON字段real_use_seconds说明实际使用时长示例值及对应分析特点';
COMMENT ON COLUMN billiards_ods.assistant_service_records.income_seconds IS '对应JSON字段income_seconds说明计费秒数 / 应计收入对应的时间。,示例值及对应分析:特点:';
COMMENT ON COLUMN billiards_ods.assistant_service_records.start_use_time IS '对应JSON字段start_use_time说明助教实际开始服务时间。示例值及对应分析特点正常情况下与 ledger_start_time 相同。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.last_use_time IS '对应JSON字段last_use_time说明最后一次使用实际服务时间。示例值及对应分析特点正常结束时与 ledger_end_time 相同;如果服务还未真正开始或立即结束,开始/结束时间可能相同。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.create_time IS '对应JSON字段create_time说明这条助教流水记录创建时间一般接近结算/下单时间)。,示例值及对应分析:?? assistant_service_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_service_records.is_single_order IS '对应JSON字段is_single_order说明推测是否单独订单示例值及对应分析1本助教服务作为单独订单结算或单独拆项';
COMMENT ON COLUMN billiards_ods.assistant_service_records.is_delete IS '对应JSON字段is_delete说明逻辑删除标志。示例值及对应分析0未删除';
COMMENT ON COLUMN billiards_ods.assistant_service_records.is_trash IS '对应JSON字段is_trash说明是否已废除/作废示例值及对应分析0正常有效';
COMMENT ON COLUMN billiards_ods.assistant_service_records.trash_reason IS '对应JSON字段trash_reason说明废除原因文本说明例如“顾客取消”“录入错误”等。示例值及对应分析当前数据为空字符串说明当前导出时间段没有被废除的助教流水记录。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.trash_applicant_id IS '对应JSON字段trash_applicant_id说明提出废除申请的员工 ID通常是操作员/管理员)。,示例值及对应分析:当前数据全为 0因此短期内没有发生废除操作。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.trash_applicant_name IS '对应JSON字段trash_applicant_name说明废除申请人姓名。示例值及对应分析?? assistant_service_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_service_records.operator_id IS '对应JSON字段operator_id说明操作员 ID录入/结算这条助教服务的员工)。,示例值及对应分析:关联:可与员工/账号表对应(本次导出未单独给员工表,但其他 JSON 里多处出现该 ID';
COMMENT ON COLUMN billiards_ods.assistant_service_records.operator_name IS '对应JSON字段operator_name说明操作员姓名与 operator_id 一起使用便于直接阅读。示例值及对应分析user_id';
COMMENT ON COLUMN billiards_ods.assistant_service_records.salesman_name IS '对应JSON字段salesman_name说明关联的“营业员/销售员姓名”,用于提成归属。,示例值及对应分析:观测:本数据中多数为空字符串,说明助教流水没有配置单独的营业员。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.salesman_org_id IS '对应JSON字段salesman_org_id说明营业员所属组织/部门 ID。示例值及对应分析观测多为 0。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.salesman_user_id IS '对应JSON字段salesman_user_id说明营业员用户 ID。示例值及对应分析观测多为 0代表未指定。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.person_org_id IS '对应JSON字段person_org_id说明同样在上文说明助教所属人事组织 ID。示例值及对应分析9. 作废 / 废除相关字段';
COMMENT ON COLUMN billiards_ods.assistant_service_records.add_clock IS '对应JSON字段add_clock说明推测加钟秒数即在原有预约/服务基础上临时追加的时长。,示例值及对应分析:说明:值均为 60 的倍数(分钟级加钟),如 600 秒=10 分钟。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.returns_clock IS '对应JSON字段returns_clock说明推测退钟秒数取消加钟或提前结束退回的时间示例值及对应分析当前数据里没有退钟场景所以全为 0但字段设计已经预留。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.composite_grade IS '对应JSON字段composite_grade说明综合评分例如技能+服务加权后的平均分),当前数据没有实际评分。,示例值及对应分析:?? assistant_service_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_service_records.composite_grade_time IS '对应JSON字段composite_grade_time说明推测最近一次评价时间/综合评分更新时间。现在都是默认“无效时间”。示例值及对应分析3. 桌台 / 门店维度字段';
COMMENT ON COLUMN billiards_ods.assistant_service_records.skill_grade IS '对应JSON字段skill_grade说明推测顾客对“技能表现”的评分整数或打分等级示例值及对应分析当前数据中还未产生评分记录所以都是默认值 0。';
COMMENT ON COLUMN billiards_ods.assistant_service_records.service_grade IS '对应JSON字段service_grade说明推测顾客对“服务态度”的评分。示例值及对应分析?? assistant_service_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_service_records.sum_grade IS '对应JSON字段sum_grade说明累计评分总和可能用于计算平均分当前为 0。示例值及对应分析?? assistant_service_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_service_records.grade_status IS '对应JSON字段grade_status说明推测评价状态比如示例值及对应分析1 = 未评价/正常;';
COMMENT ON COLUMN billiards_ods.assistant_service_records.get_grade_times IS '对应JSON字段get_grade_times说明该条记录对应的评价次数或该助教被评价次数快照示例值及对应分析?? assistant_service_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.assistant_service_records.is_not_responding IS '对应JSON字段is_not_responding说明推测是否存在“爽约/未响应”情况示例值及对应分析0正常';
COMMENT ON COLUMN billiards_ods.assistant_service_records.is_confirm IS '对应JSON字段is_confirm说明推测确认状态例如示例值及对应分析1待确认';
COMMENT ON COLUMN billiards_ods.assistant_service_records.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.assistant_service_records.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.assistant_service_records.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.assistant_service_records.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.site_tables_master (
id BIGINT PRIMARY KEY,
site_id BIGINT,
siteName TEXT,
"appletQrCodeUrl" TEXT,
areaName TEXT,
audit_status INT,
charge_free INT,
create_time TIMESTAMP,
delay_lights_time INT,
is_online_reservation INT,
is_rest_area INT,
light_status INT,
only_allow_groupon INT,
order_delay_time INT,
self_table INT,
show_status INT,
site_table_area_id BIGINT,
tableStatusName TEXT,
table_cloth_use_Cycle INT,
table_cloth_use_time TIMESTAMP,
table_name TEXT,
table_price NUMERIC(18,2),
table_status INT,
temporary_light_second INT,
virtual_table INT,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.site_tables_master IS '对应JSON字段site_tables_master.json说明ODS 原始明细表保留payload示例值及对应分析详见 site_tables_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.site_tables_master.id IS '对应JSON字段id说明台桌主键 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.site_tables_master.site_id IS '对应JSON字段site_id说明门店 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.site_tables_master.siteName IS '对应JSON字段siteName说明门店名称快照冗余字段配合 site_id 使用。,示例值及对应分析:?? site_tables_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.site_tables_master."appletQrCodeUrl" IS '对应JSON字段appletQrCodeUrl说明小程序二维码 URL。 一般用于:,示例值及对应分析:打印二维码贴在台上,顾客扫码可呼叫服务、查看账单或发起线上预约;';
COMMENT ON COLUMN billiards_ods.site_tables_master.areaName IS '对应JSON字段areaName说明区域名称用于前台展示和区域维度管理。示例值及对应分析结构特征';
COMMENT ON COLUMN billiards_ods.site_tables_master.audit_status IS '对应JSON字段audit_status说明结合命名惯例示例值及对应分析2已审核/已启用;';
COMMENT ON COLUMN billiards_ods.site_tables_master.charge_free IS '对应JSON字段charge_free说明推测示例值及对应分析0正常计费';
COMMENT ON COLUMN billiards_ods.site_tables_master.create_time IS '对应JSON字段create_time说明台桌配置的创建时间或最近一次创建/复制时间。,示例值及对应分析:三、与其它 JSON 的字段级关联关系(结构视角)';
COMMENT ON COLUMN billiards_ods.site_tables_master.delay_lights_time IS '对应JSON字段delay_lights_time说明推测台灯熄灭延迟时间单位多半是秒或分钟用于结账后延时关灯。示例值及对应分析本门店未启用延迟关灯功能全部为 0';
COMMENT ON COLUMN billiards_ods.site_tables_master.is_online_reservation IS '对应JSON字段is_online_reservation说明结合值分布推断示例值及对应分析1允许线上预约可在小程序/线上平台预约这张台);';
COMMENT ON COLUMN billiards_ods.site_tables_master.is_rest_area IS '对应JSON字段is_rest_area说明推测示例值及对应分析0正常计费区域';
COMMENT ON COLUMN billiards_ods.site_tables_master.light_status IS '对应JSON字段light_status说明结合命名推断示例值及对应分析该字段是台灯/灯光状态开关位:';
COMMENT ON COLUMN billiards_ods.site_tables_master.only_allow_groupon IS '对应JSON字段only_allow_groupon说明结合命名推断示例值及对应分析1仅允许团购/券预约使用(团购专用台);';
COMMENT ON COLUMN billiards_ods.site_tables_master.order_delay_time IS '对应JSON字段order_delay_time说明推测订单层面允许的“自动延时时长”例如到点后自动延长多少时间继续计费示例值及对应分析本门店未使用此功能。';
COMMENT ON COLUMN billiards_ods.site_tables_master.self_table IS '对应JSON字段self_table说明推测示例值及对应分析1“本门店自有台”非共享或外部配置';
COMMENT ON COLUMN billiards_ods.site_tables_master.show_status IS '对应JSON字段show_status说明推测示例值及对应分析1正常在前台“开台列表”中展示';
COMMENT ON COLUMN billiards_ods.site_tables_master.site_table_area_id IS '对应JSON字段site_table_area_id说明门店维度的“台桌区域 ID”。示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.site_tables_master.tableStatusName IS '对应JSON字段tableStatusName说明table_status 的中文名称,仅为展示用途。,示例值及对应分析:?? site_tables_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.site_tables_master.table_cloth_use_Cycle IS '对应JSON字段table_cloth_use_Cycle说明推测示例值及对应分析台呢使用周期阈值例如达到某个秒数后提醒更换';
COMMENT ON COLUMN billiards_ods.site_tables_master.table_cloth_use_time IS '对应JSON字段table_cloth_use_time说明结合命名和数值特征示例值及对应分析台呢使用累计时长单位极大概率为“秒”';
COMMENT ON COLUMN billiards_ods.site_tables_master.table_name IS '对应JSON字段table_name说明台号/台名称,用于前台操作界面展示,也出现在小票和各种流水中的 ledger_name 或 tableName 字段。,示例值及对应分析:?? site_tables_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.site_tables_master.table_price IS '对应JSON字段table_price说明结构角度示例值及对应分析设计上应为“台的基础单价”字段例如按小时或按局单价';
COMMENT ON COLUMN billiards_ods.site_tables_master.table_status IS '对应JSON字段table_status说明台当前运行状态真实反映某一时刻台的占用/暂停情况。,示例值及对应分析:?? site_tables_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.site_tables_master.temporary_light_second IS '对应JSON字段temporary_light_second说明推测临时点灯时长例如手动临时开灯一段时间。示例值及对应分析本门店未使用。';
COMMENT ON COLUMN billiards_ods.site_tables_master.virtual_table IS '对应JSON字段virtual_table说明推测示例值及对应分析0物理台实体存在的桌';
COMMENT ON COLUMN billiards_ods.site_tables_master.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.site_tables_master.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.site_tables_master.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.site_tables_master.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.table_fee_discount_records (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
siteProfile JSONB,
site_table_id BIGINT,
tableProfile JSONB,
tenant_table_area_id BIGINT,
adjust_type INT,
ledger_amount NUMERIC(18,2),
ledger_count NUMERIC(18,4),
ledger_name TEXT,
ledger_status INT,
applicant_id BIGINT,
applicant_name TEXT,
operator_id BIGINT,
operator_name TEXT,
order_settle_id BIGINT,
order_trade_no TEXT,
is_delete INT,
create_time TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.table_fee_discount_records IS '对应JSON字段table_fee_discount_records.json说明ODS 原始明细表保留payload示例值及对应分析详见 table_fee_discount_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.id IS '对应JSON字段id说明台费打折 / 调整流水主键 ID。示例值及对应分析作用在“台费调账表”中唯一标识一条折扣/调账操作。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.tenant_id IS '对应JSON字段tenant_id说明租户/品牌 ID。示例值及对应分析作用标识记录属于哪一个商户同一个“非球科技”租户';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.site_id IS '对应JSON字段site_id说明门店 ID本批数据全部为同一家门店朗朗桌球示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.siteProfile IS '对应JSON字段siteProfile说明门店信息快照用于报表时直接读取无需再联门店档案。示例值及对应分析?? table_fee_discount_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.site_table_id IS '对应JSON字段site_table_id说明台桌 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.tableProfile IS '对应JSON字段tableProfile说明折扣发生时对应台桌的配置信息快照。示例值及对应分析?? table_fee_discount_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.tenant_table_area_id IS '对应JSON字段tenant_table_area_id说明租户维度的“台桌区域 ID”。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.adjust_type IS '对应JSON字段adjust_type说明根据文件含义 + 命名 + 数据):,示例值及对应分析:文件名是“台费打折”,字段名为“调整类型”,当前所有记录都是 1即“台费打折/台费减免”这一种调整类型。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.ledger_amount IS '对应JSON字段ledger_amount说明关键点示例值及对应分析通过与 台费流水.json 做对比,可以明确:';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.ledger_count IS '对应JSON字段ledger_count说明示例值及对应分析这里不是“秒数”而是“调整次数/条数”的量化,目前固定为 1表示“一次调账事件”。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.ledger_name IS '对应JSON字段ledger_name说明推测示例值及对应分析设计上应该用于记录“调账项目名称”或“打折原因描述”例如某种优惠规则名称但当前门店并未使用该字段。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.ledger_status IS '对应JSON字段ledger_status说明示例值及对应分析1生效调整当前有效的台费打折 / 调账记录);';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.applicant_id IS '对应JSON字段applicant_id说明打折/调账申请人 ID。示例值及对应分析作用记录谁发起了这次台费调整。 本时段内所有调整均由同一位员工发起。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.applicant_name IS '对应JSON字段applicant_name说明申请人姓名带角色描述为 applicant_id 的冗余显示字段。,示例值及对应分析:?? table_fee_discount_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.operator_id IS '对应JSON字段operator_id说明实际执行调账操作的操作员 ID。示例值及对应分析说明这段时间内“申请人”和“操作员”是同一个人。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.operator_name IS '对应JSON字段operator_name说明操作员姓名。示例值及对应分析?? table_fee_discount_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.order_settle_id IS '对应JSON字段order_settle_id说明结算单/小票 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.order_trade_no IS '对应JSON字段order_trade_no说明订单交易号。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.is_delete IS '对应JSON字段is_delete说明逻辑删除标志示例值及对应分析0未删除有效记录';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.create_time IS '对应JSON字段create_time说明台费调整记录的创建时间即打折操作被执行的时间戳。示例值及对应分析说明与台费流水中的 create_time结算时间相互配合可以还原调整发生于结账之前还是之后。';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.table_fee_discount_records.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.table_fee_transactions (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
siteProfile JSONB,
site_table_id BIGINT,
site_table_area_id BIGINT,
site_table_area_name TEXT,
tenant_table_area_id BIGINT,
order_trade_no TEXT,
order_pay_id BIGINT,
order_settle_id BIGINT,
ledger_name TEXT,
ledger_amount NUMERIC(18,2),
ledger_count NUMERIC(18,4),
ledger_unit_price NUMERIC(18,4),
ledger_status INT,
ledger_start_time TIMESTAMP,
ledger_end_time TIMESTAMP,
start_use_time TIMESTAMP,
last_use_time TIMESTAMP,
real_table_use_seconds INT,
real_table_charge_money NUMERIC(18,2),
add_clock_seconds INT,
adjust_amount NUMERIC(18,2),
coupon_promotion_amount NUMERIC(18,2),
member_discount_amount NUMERIC(18,2),
used_card_amount NUMERIC(18,2),
mgmt_fee NUMERIC(18,2),
service_money NUMERIC(18,2),
fee_total NUMERIC(18,2),
is_single_order INT,
is_delete INT,
member_id BIGINT,
operator_id BIGINT,
operator_name TEXT,
salesman_name TEXT,
salesman_org_id BIGINT,
salesman_user_id BIGINT,
create_time TIMESTAMP,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.table_fee_transactions IS '对应JSON字段table_fee_transactions.json说明ODS 原始明细表保留payload示例值及对应分析详见 table_fee_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.id IS '对应JSON字段id说明台费流水记录主键事实表主键示例值及对应分析?? table_fee_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.tenant_id IS '对应JSON字段tenant_id说明租户/品牌 ID。本文件所有记录都属于同一租户。示例值及对应分析关联与所有其它 JSON 中的 tenant_id 一致,用于跨表做“商户维度”的过滤。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.site_id IS '对应JSON字段site_id说明门店 ID本次数据全部来自同一门店朗朗桌球示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.siteProfile IS '对应JSON字段siteProfile说明当前门店的完整档案快照冗余到流水表中便于报表直接读取而无需再联表门店档案。示例值及对应分析三、与其它 JSON 的结构关联关系(从字段层面)';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.site_table_id IS '对应JSON字段site_table_id说明球台 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.site_table_area_id IS '对应JSON字段site_table_area_id说明门店内“台桌区域” ID站在门店物理布局的角度示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.site_table_area_name IS '对应JSON字段site_table_area_name说明台桌区域的名称用于门店表现和区域统计。示例值及对应分析4. 会员维度与相关字段';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.tenant_table_area_id IS '对应JSON字段tenant_table_area_id说明租户维度的台桌区域 ID品牌层面的同一类区域示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.order_trade_no IS '对应JSON字段order_trade_no说明订单交易号是整笔订单的主编号。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.order_pay_id IS '对应JSON字段order_pay_id说明订单支付记录 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.order_settle_id IS '对应JSON字段order_settle_id说明结算单号/结账 ID对应一次结账操作。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_name IS '对应JSON字段ledger_name说明台号名称实际展示给员工/顾客看的桌台编号。,示例值及对应分析:备注:与 site_table_id 一一对应,是桌台维表中的名称字段冗余到流水里的快照。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_amount IS '对应JSON字段ledger_amount说明按单价与计费时长计算出的原始应收台费金额。示例值及对应分析近似关系ledger_amount ≈ ledger_unit_price × ledger_count / 3600考虑到四舍五入会有小数差。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_count IS '对应JSON字段ledger_count说明台账记录的计费秒数计费用秒数应收时长示例值及对应分析特点';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_unit_price IS '对应JSON字段ledger_unit_price说明台费结算时设置的 每小时单价/计费单价。,示例值及对应分析:用途:与 ledger_count 共同决定原始应收额。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_status IS '对应JSON字段ledger_status说明推测示例值及对应分析1正常已结算台费';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_start_time IS '对应JSON字段ledger_start_time说明台账上的计费起始时间。示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.ledger_end_time IS '对应JSON字段ledger_end_time说明台账上的计费结束时间。示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.start_use_time IS '对应JSON字段start_use_time说明台开始使用的时间实际开台时间示例值及对应分析特点在数据中与 ledger_start_time 完全相同(见下)。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.last_use_time IS '对应JSON字段last_use_time说明最后使用/操作时间。,示例值及对应分析:特点:';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.real_table_use_seconds IS '对应JSON字段real_table_use_seconds说明实际使用的总秒数系统真实统计的使用时长示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.real_table_charge_money IS '对应JSON字段real_table_charge_money说明台费中实际向顾客收取的金额现金/实付维度,未含券方承担或内部调账的那一部分)。,示例值及对应分析:特点:';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.add_clock_seconds IS '对应JSON字段add_clock_seconds说明加钟秒数在原有使用基础上追加的时长。示例值及对应分析观测';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.adjust_amount IS '对应JSON字段adjust_amount说明调整金额/调账金额,用于将台费金额转移或冲减到其它项目,或手工调整。,示例值及对应分析:特点:';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.coupon_promotion_amount IS '对应JSON字段coupon_promotion_amount说明由优惠券/活动/团购(平台/门店促销)承担的优惠金额,直接抵扣在台费上。,示例值及对应分析:特点:当 real_table_charge_money = 0 且该字段为 ledger_amount 时,说明整笔台费是由券促销全额承担。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.member_discount_amount IS '对应JSON字段member_discount_amount说明上文已说明这里补充与金额的结构关系示例值及对应分析功能表示由会员折扣或会员权益承担的那部分金额。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.used_card_amount IS '对应JSON字段used_card_amount说明由储值卡、次卡等“卡内余额”抵扣的金额。示例值及对应分析说明字段设计已预留但本段时间内台费没有通过储值卡扣款或者卡扣款在其他表体现。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.mgmt_fee IS '对应JSON字段mgmt_fee说明推测管理费字段用于未来支持“台费附加管理费/服务费”的功能。,示例值及对应分析:当前未启用。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.service_money IS '对应JSON字段service_money说明推测门店用于记录“服务费/成本/分成金额”的字段,类似助教流水里的 service_money。示例值及对应分析说明当前门店未启用此字段结算台费。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.fee_total IS '对应JSON字段fee_total说明各种附加费用如管理费、服务费合计值。示例值及对应分析说明和 mgmt_fee 一样,目前作为预留字段,没有实际使用。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.is_single_order IS '对应JSON字段is_single_order说明推测示例值及对应分析1该台费记录对应的是一个独立计费单元单独结算的桌费';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.is_delete IS '对应JSON字段is_delete说明逻辑删除标志示例值及对应分析0未删除有效记录';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.member_id IS '对应JSON字段member_id说明门店/租户内的会员 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.operator_id IS '对应JSON字段operator_id说明操作员 ID负责开台/结账的员工账号 ID。示例值及对应分析关联与员工/账号体系中的用户 ID 对应(与助教账号的 user_id 属于同一种 ID 体系)。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.operator_name IS '对应JSON字段operator_name说明操作员姓名冗余字段便于直接阅读不必再联表员工档案。示例值及对应分析?? table_fee_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.salesman_name IS '对应JSON字段salesman_name说明业务员/营业员姓名,如果台费有单独提成员工,这里记录归属人。,示例值及对应分析:当前门店未启用该字段做提成归属。';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.salesman_org_id IS '对应JSON字段salesman_org_id说明营业员所属机构/部门 ID。示例值及对应分析8. 状态 / 标记类字段';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.salesman_user_id IS '对应JSON字段salesman_user_id说明营业员的用户 ID与 salesman_name 搭配)。,示例值及对应分析:?? table_fee_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.create_time IS '对应JSON字段create_time说明这条台费流水记录的创建时间通常接近结账时间。示例值及对应分析?? table_fee_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.table_fee_transactions.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.goods_stock_movements (
siteGoodsStockId BIGINT PRIMARY KEY,
tenantId BIGINT,
siteId BIGINT,
siteGoodsId BIGINT,
goodsName TEXT,
goodsCategoryId BIGINT,
goodsSecondCategoryId BIGINT,
unit TEXT,
price NUMERIC(18,4),
stockType INT,
changeNum NUMERIC(18,4),
startNum NUMERIC(18,4),
endNum NUMERIC(18,4),
changeNumA NUMERIC(18,4),
startNumA NUMERIC(18,4),
endNumA NUMERIC(18,4),
remark TEXT,
operatorName TEXT,
createTime TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.goods_stock_movements IS '对应JSON字段goods_stock_movements.json说明ODS 原始明细表保留payload示例值及对应分析详见 goods_stock_movements-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.siteGoodsStockId IS '对应JSON字段siteGoodsStockId说明门店某个“商品库存记录”的主键 ID。示例值及对应分析特点每条库存变动记录对应一个 siteGoodsStockId同一个商品可能在不同库存记录中出现例如不同仓位或不同批次';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.tenantId IS '对应JSON字段tenantId说明租户/品牌 ID。示例值及对应分析观测全部记录相同值说明属于同一商户。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.siteId IS '对应JSON字段siteId说明门店 ID。示例值及对应分析观测本文件中所有记录的 siteId 都相同,对应“朗朗桌球”这家门店。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.siteGoodsId IS '对应JSON字段siteGoodsId说明门店维度的商品 ID。示例值及对应分析特点';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.goodsName IS '对应JSON字段goodsName说明商品名称。示例值及对应分析示例值';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.goodsCategoryId IS '对应JSON字段goodsCategoryId说明商品一级分类 ID。示例值及对应分析观测当前 100 条样本中约有 5 个不同 ID对应如“酒水类”“食品小吃类”“香烟类”等大类仅从命名与商品名推断';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.goodsSecondCategoryId IS '对应JSON字段goodsSecondCategoryId说明商品二级分类 ID。示例值及对应分析观测样本中约有 7 个不同 ID如饮料中的“矿泉水/功能饮料/碳酸饮料”等。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.unit IS '对应JSON字段unit说明库存计量单位。示例值及对应分析说明库存数量startNum、endNum、changeNum均以这里的单位计数。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.price IS '对应JSON字段price说明商品单价单位金额示例值及对应分析观测特征';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.stockType IS '对应JSON字段stockType说明基于数据行为推断示例值及对应分析1出库类变动 典型情况是销售出库,库存减少 1 或 2例如顾客点了一瓶饮料对应一条 stockType=1, changeNum=-1 的记录。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.changeNum IS '对应JSON字段changeNum说明本次库存数量变化值。示例值及对应分析特点及取值';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.startNum IS '对应JSON字段startNum说明变动前这次出入库之前的库存数量。示例值及对应分析示例 如记录startNum = 28, changeNum = -1, endNum = 27。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.endNum IS '对应JSON字段endNum说明变动后出入库之后的库存数量。示例值及对应分析结构关系';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.changeNumA IS '对应JSON字段changeNumA说明辅助单位的变化量与 changeNum 对应的第二计量单位变化),当前未使用。,示例值及对应分析:结论: startNumA / endNumA / changeNumA 是为“一个商品有两种计量单位(如箱与瓶)”而设计的预留字段。 目前门店只在单一单位层面管理库存,故全部为 0。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.startNumA IS '对应JSON字段startNumA说明推测辅助计量单位的起始库存例如件/箱等第二单位)。,示例值及对应分析:当前门店在样本时间段内没有启用多单位库存管理,因此全部为 0。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.endNumA IS '对应JSON字段endNumA说明辅助单位的变动后库存同样未启用。示例值及对应分析?? goods_stock_movements-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.remark IS '对应JSON字段remark说明备注信息用于手工记录本次变更的特殊原因说明例如“盘点差异调整”“报损”示例值及对应分析当前样本中没有填入任何备注但字段已预留适用于盘点或手工调整场景。';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.operatorName IS '对应JSON字段operatorName说明执行此次库存变动的操作人。示例值及对应分析观测值';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.createTime IS '对应JSON字段createTime说明这条库存变动记录的创建时间即发生库存变更的时间点。示例值及对应分析特点';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.goods_stock_movements.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.stock_goods_category_tree (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
category_name TEXT,
alias_name TEXT,
pid BIGINT,
business_name TEXT,
tenant_goods_business_id BIGINT,
open_salesman INT,
categoryBoxes JSONB,
sort INT,
is_warehousing INT,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.stock_goods_category_tree IS '对应JSON字段stock_goods_category_tree.json说明ODS 原始明细表保留payload示例值及对应分析详见 stock_goods_category_tree-Analysis.md';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.id IS '对应JSON字段id说明?????? stock_goods_category_tree-Analysis.md示例值及对应分析?? stock_goods_category_tree-Analysis.md';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.tenant_id IS '对应JSON字段tenant_id说明?????? stock_goods_category_tree-Analysis.md示例值及对应分析?? stock_goods_category_tree-Analysis.md';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.category_name IS '对应JSON字段category_name说明?????? stock_goods_category_tree-Analysis.md示例值及对应分析?? stock_goods_category_tree-Analysis.md';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.alias_name IS '对应JSON字段alias_name说明?????? stock_goods_category_tree-Analysis.md示例值及对应分析?? stock_goods_category_tree-Analysis.md';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.pid IS '对应JSON字段pid说明?????? stock_goods_category_tree-Analysis.md示例值及对应分析?? stock_goods_category_tree-Analysis.md';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.business_name IS '对应JSON字段business_name说明?????? stock_goods_category_tree-Analysis.md示例值及对应分析?? stock_goods_category_tree-Analysis.md';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.tenant_goods_business_id IS '对应JSON字段tenant_goods_business_id说明?????? stock_goods_category_tree-Analysis.md示例值及对应分析?? stock_goods_category_tree-Analysis.md';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.open_salesman IS '对应JSON字段open_salesman说明?????? stock_goods_category_tree-Analysis.md示例值及对应分析?? stock_goods_category_tree-Analysis.md';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.categoryBoxes IS '对应JSON字段categoryBoxes说明?????? stock_goods_category_tree-Analysis.md示例值及对应分析?? stock_goods_category_tree-Analysis.md';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.sort IS '对应JSON字段sort说明?????? stock_goods_category_tree-Analysis.md示例值及对应分析?? stock_goods_category_tree-Analysis.md';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.is_warehousing IS '对应JSON字段is_warehousing说明分类节点主键 ID在商品分类维度中的唯一标识示例值及对应分析特征';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.stock_goods_category_tree.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.goods_stock_summary (
siteGoodsId BIGINT PRIMARY KEY,
goodsName TEXT,
goodsUnit TEXT,
goodsCategoryId BIGINT,
goodsCategorySecondId BIGINT,
categoryName TEXT,
rangeStartStock NUMERIC(18,4),
rangeEndStock NUMERIC(18,4),
rangeIn NUMERIC(18,4),
rangeOut NUMERIC(18,4),
rangeSale NUMERIC(18,4),
rangeSaleMoney NUMERIC(18,2),
rangeInventory NUMERIC(18,4),
currentStock NUMERIC(18,4),
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.goods_stock_summary IS '对应JSON字段goods_stock_summary.json说明ODS 原始明细表保留payload示例值及对应分析详见 goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.siteGoodsId IS '对应JSON字段siteGoodsId说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.goodsName IS '对应JSON字段goodsName说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.goodsUnit IS '对应JSON字段goodsUnit说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.goodsCategoryId IS '对应JSON字段goodsCategoryId说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.goodsCategorySecondId IS '对应JSON字段goodsCategorySecondId说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.categoryName IS '对应JSON字段categoryName说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeStartStock IS '对应JSON字段rangeStartStock说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeEndStock IS '对应JSON字段rangeEndStock说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeIn IS '对应JSON字段rangeIn说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeOut IS '对应JSON字段rangeOut说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeSale IS '对应JSON字段rangeSale说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeSaleMoney IS '对应JSON字段rangeSaleMoney说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.rangeInventory IS '对应JSON字段rangeInventory说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.currentStock IS '对应JSON字段currentStock说明?????? goods_stock_summary-Analysis.md示例值及对应分析?? goods_stock_summary-Analysis.md';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.goods_stock_summary.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.payment_transactions (
id BIGINT PRIMARY KEY,
site_id BIGINT,
siteProfile JSONB,
relate_type INT,
relate_id BIGINT,
pay_amount NUMERIC(18,2),
pay_status INT,
pay_time TIMESTAMP,
create_time TIMESTAMP,
payment_method INT,
online_pay_channel INT,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.payment_transactions IS '对应JSON字段payment_transactions.json说明ODS 原始明细表保留payload示例值及对应分析详见 payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.id IS '对应JSON字段id说明?????? payment_transactions-Analysis.md示例值及对应分析?? payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.site_id IS '对应JSON字段site_id说明?????? payment_transactions-Analysis.md示例值及对应分析?? payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.siteProfile IS '对应JSON字段siteProfile说明?????? payment_transactions-Analysis.md示例值及对应分析?? payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.relate_type IS '对应JSON字段relate_type说明?????? payment_transactions-Analysis.md示例值及对应分析?? payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.relate_id IS '对应JSON字段relate_id说明?????? payment_transactions-Analysis.md示例值及对应分析?? payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.pay_amount IS '对应JSON字段pay_amount说明?????? payment_transactions-Analysis.md示例值及对应分析?? payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.pay_status IS '对应JSON字段pay_status说明?????? payment_transactions-Analysis.md示例值及对应分析?? payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.pay_time IS '对应JSON字段pay_time说明?????? payment_transactions-Analysis.md示例值及对应分析?? payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.create_time IS '对应JSON字段create_time说明?????? payment_transactions-Analysis.md示例值及对应分析?? payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.payment_method IS '对应JSON字段payment_method说明?????? payment_transactions-Analysis.md示例值及对应分析?? payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.online_pay_channel IS '对应JSON字段online_pay_channel说明?????? payment_transactions-Analysis.md示例值及对应分析?? payment_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.payment_transactions.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.payment_transactions.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.payment_transactions.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.payment_transactions.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.refund_transactions (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
tenantName TEXT,
site_id BIGINT,
siteProfile JSONB,
relate_type INT,
relate_id BIGINT,
pay_sn TEXT,
pay_amount NUMERIC(18,2),
refund_amount NUMERIC(18,2),
round_amount NUMERIC(18,2),
pay_status INT,
pay_time TIMESTAMP,
create_time TIMESTAMP,
payment_method INT,
pay_terminal INT,
pay_config_id BIGINT,
online_pay_channel INT,
online_pay_type INT,
channel_fee NUMERIC(18,2),
channel_payer_id TEXT,
channel_pay_no TEXT,
member_id BIGINT,
member_card_id BIGINT,
cashier_point_id BIGINT,
operator_id BIGINT,
action_type INT,
check_status INT,
is_revoke INT,
is_delete INT,
balance_frozen_amount NUMERIC(18,2),
card_frozen_amount NUMERIC(18,2),
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.refund_transactions IS '对应JSON字段refund_transactions.json说明ODS 原始明细表保留payload示例值及对应分析详见 refund_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.refund_transactions.id IS '对应JSON字段id说明本条 退款流水 的唯一 ID。示例值及对应分析特点';
COMMENT ON COLUMN billiards_ods.refund_transactions.tenant_id IS '对应JSON字段tenant_id说明租户/品牌 ID全系统维度标识该商户。示例值及对应分析特点本文件中所有记录相同。';
COMMENT ON COLUMN billiards_ods.refund_transactions.tenantName IS '对应JSON字段tenantName说明租户商户名称。示例值及对应分析特点本文件中固定为“朗朗桌球”完全冗余于 siteProfile.shop_name。';
COMMENT ON COLUMN billiards_ods.refund_transactions.site_id IS '对应JSON字段site_id说明门店 ID。示例值及对应分析特点本文件中所有记录相同单门店';
COMMENT ON COLUMN billiards_ods.refund_transactions.siteProfile IS '对应JSON字段siteProfile说明门店信息快照结构与其他 JSON 中的 siteProfile 完全一致。包含字段包括但不限于示例值及对应分析id门店 ID= site_id';
COMMENT ON COLUMN billiards_ods.refund_transactions.relate_type IS '对应JSON字段relate_type说明本退款对应的“业务类型”。示例值及对应分析结合支付记录的 relate_type 推测:';
COMMENT ON COLUMN billiards_ods.refund_transactions.relate_id IS '对应JSON字段relate_id说明本次退款关联的业务 ID。示例值及对应分析对于 relate_type = 2应该对应某个订单/结算的主键;';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_sn IS '对应JSON字段pay_sn说明?????? refund_transactions-Analysis.md示例值及对应分析?? refund_transactions-Analysis.md';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_amount IS '对应JSON字段pay_amount说明本次退款的 资金变动金额。,示例值及对应分析:特征很重要:';
COMMENT ON COLUMN billiards_ods.refund_transactions.refund_amount IS '对应JSON字段refund_amount说明推测示例值及对应分析设计上本应显示“实际退款金额”正数与 pay_amount 配合使用;';
COMMENT ON COLUMN billiards_ods.refund_transactions.round_amount IS '对应JSON字段round_amount说明推测示例值及对应分析舍入金额/抹零金额;';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_status IS '对应JSON字段pay_status说明推测示例值及对应分析支付/退款状态枚举:';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_time IS '对应JSON字段pay_time说明退款在支付渠道层面实际发生的时间。示例值及对应分析特点';
COMMENT ON COLUMN billiards_ods.refund_transactions.create_time IS '对应JSON字段create_time说明本条退款流水在系统内创建时间。示例值及对应分析特点';
COMMENT ON COLUMN billiards_ods.refund_transactions.payment_method IS '对应JSON字段payment_method说明推测示例值及对应分析支付/退款的 方式类型:';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_terminal IS '对应JSON字段pay_terminal说明推测示例值及对应分析退款所使用的 终端类型:';
COMMENT ON COLUMN billiards_ods.refund_transactions.pay_config_id IS '对应JSON字段pay_config_id说明推测示例值及对应分析支付配置 ID例如商户在“非球科技”内配置的某一条支付通道某个微信商户号、银联通道的主键。';
COMMENT ON COLUMN billiards_ods.refund_transactions.online_pay_channel IS '对应JSON字段online_pay_channel说明推测示例值及对应分析线上支付的 渠道编号,例如:';
COMMENT ON COLUMN billiards_ods.refund_transactions.online_pay_type IS '对应JSON字段online_pay_type说明推测示例值及对应分析在线退款的类型';
COMMENT ON COLUMN billiards_ods.refund_transactions.channel_fee IS '对应JSON字段channel_fee说明推测示例值及对应分析第三方支付渠道对本次退款收取的手续费';
COMMENT ON COLUMN billiards_ods.refund_transactions.channel_payer_id IS '对应JSON字段channel_payer_id说明推测示例值及对应分析支付渠道侧的 payer ID例如微信 openid、银行卡号掩码等。';
COMMENT ON COLUMN billiards_ods.refund_transactions.channel_pay_no IS '对应JSON字段channel_pay_no说明推测示例值及对应分析第三方支付平台的交易号如微信支付单号、支付宝交易号等';
COMMENT ON COLUMN billiards_ods.refund_transactions.member_id IS '对应JSON字段member_id说明示例值及对应分析租户内部的会员 ID对应会员档案中的某个主键';
COMMENT ON COLUMN billiards_ods.refund_transactions.member_card_id IS '对应JSON字段member_card_id说明示例值及对应分析关联的会员卡账户 ID对应“储值卡列表”或“会员档案”中的某一张卡';
COMMENT ON COLUMN billiards_ods.refund_transactions.cashier_point_id IS '对应JSON字段cashier_point_id说明推测示例值及对应分析收银点 ID例如前台 1、前台 2、自助机等。';
COMMENT ON COLUMN billiards_ods.refund_transactions.operator_id IS '对应JSON字段operator_id说明示例值及对应分析执行该退款操作的操作员 ID。';
COMMENT ON COLUMN billiards_ods.refund_transactions.action_type IS '对应JSON字段action_type说明推测示例值及对应分析行为类型';
COMMENT ON COLUMN billiards_ods.refund_transactions.check_status IS '对应JSON字段check_status说明推测示例值及对应分析审核状态';
COMMENT ON COLUMN billiards_ods.refund_transactions.is_revoke IS '对应JSON字段is_revoke说明推测示例值及对应分析是否撤销型退款/撤销原支付:';
COMMENT ON COLUMN billiards_ods.refund_transactions.is_delete IS '对应JSON字段is_delete说明逻辑删除标志。示例值及对应分析0未删除';
COMMENT ON COLUMN billiards_ods.refund_transactions.balance_frozen_amount IS '对应JSON字段balance_frozen_amount说明推测示例值及对应分析涉及会员储值卡退款时暂时冻结的余额金额';
COMMENT ON COLUMN billiards_ods.refund_transactions.card_frozen_amount IS '对应JSON字段card_frozen_amount说明与上一个类似偏向“某张卡的被冻结金额”也与会员卡/储值账户相关。,示例值及对应分析:状态同上:本数据中未发生“卡冻结退款”。';
COMMENT ON COLUMN billiards_ods.refund_transactions.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.refund_transactions.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.refund_transactions.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.refund_transactions.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.platform_coupon_redemption_records (
id BIGINT PRIMARY KEY,
verify_id BIGINT,
certificate_id TEXT,
coupon_code TEXT,
coupon_name TEXT,
coupon_channel INT,
groupon_type INT,
group_package_id BIGINT,
sale_price NUMERIC(18,2),
coupon_money NUMERIC(18,2),
coupon_free_time NUMERIC(18,2),
coupon_cover TEXT,
coupon_remark TEXT,
use_status INT,
consume_time TIMESTAMP,
create_time TIMESTAMP,
deal_id TEXT,
channel_deal_id TEXT,
site_id BIGINT,
site_order_id BIGINT,
table_id BIGINT,
tenant_id BIGINT,
operator_id BIGINT,
operator_name TEXT,
is_delete INT,
siteProfile JSONB,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.platform_coupon_redemption_records IS '对应JSON字段platform_coupon_redemption_records.json说明ODS 原始明细表保留payload示例值及对应分析详见 platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.id IS '对应JSON字段id说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.verify_id IS '对应JSON字段verify_id说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.certificate_id IS '对应JSON字段certificate_id说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_code IS '对应JSON字段coupon_code说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_name IS '对应JSON字段coupon_name说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_channel IS '对应JSON字段coupon_channel说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.groupon_type IS '对应JSON字段groupon_type说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.group_package_id IS '对应JSON字段group_package_id说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.sale_price IS '对应JSON字段sale_price说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_money IS '对应JSON字段coupon_money说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_free_time IS '对应JSON字段coupon_free_time说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_cover IS '对应JSON字段coupon_cover说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.coupon_remark IS '对应JSON字段coupon_remark说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.use_status IS '对应JSON字段use_status说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.consume_time IS '对应JSON字段consume_time说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.create_time IS '对应JSON字段create_time说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.deal_id IS '对应JSON字段deal_id说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.channel_deal_id IS '对应JSON字段channel_deal_id说明任意一个 ID 字段缺失时(如部分记录 deal_id=0仍然可以通过其他字段coupon_name + sale_price + coupon_money + channel_deal_id唯一识别该产品。示例值及对应分析这种多字段冗余结构上提升了抗“配置缺失”的能力。';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.site_id IS '对应JSON字段site_id说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.site_order_id IS '对应JSON字段site_order_id说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.table_id IS '对应JSON字段table_id说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.tenant_id IS '对应JSON字段tenant_id说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.operator_id IS '对应JSON字段operator_id说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.operator_name IS '对应JSON字段operator_name说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.is_delete IS '对应JSON字段is_delete说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.siteProfile IS '对应JSON字段siteProfile说明?????? platform_coupon_redemption_records-Analysis.md示例值及对应分析?? platform_coupon_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.platform_coupon_redemption_records.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.tenant_goods_master (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
goods_name TEXT,
goods_bar_code TEXT,
goods_category_id BIGINT,
goods_second_category_id BIGINT,
categoryName TEXT,
unit TEXT,
goods_number TEXT,
goods_state INT,
sale_channel INT,
able_discount INT,
able_site_transfer INT,
is_delete INT,
is_warehousing INT,
isInSite INT,
cost_price NUMERIC(18,4),
cost_price_type INT,
market_price NUMERIC(18,4),
min_discount_price NUMERIC(18,4),
common_sale_royalty NUMERIC(18,4),
point_sale_royalty NUMERIC(18,4),
pinyin_initial TEXT,
commodityCode TEXT,
commodity_code TEXT,
goods_cover TEXT,
supplier_id BIGINT,
remark_name TEXT,
create_time TIMESTAMP,
update_time TIMESTAMP,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.tenant_goods_master IS '对应JSON字段tenant_goods_master.json说明ODS 原始明细表保留payload示例值及对应分析详见 tenant_goods_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.id IS '对应JSON字段id说明商品档案主键 ID唯一标识一条商品。示例值及对应分析作用作为其他业务表销售明细、库存流水、门店商品表等的外键通常以 tenant_goods_id 或类似字段出现。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.tenant_id IS '对应JSON字段tenant_id说明租户/品牌 ID。示例值及对应分析作用和其它 JSON 中的 tenant_id / tenantId 一致,用于区分不同商户(本次数据只包含同一租户)。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_name IS '对应JSON字段goods_name说明商品名称前台展示名称示例值及对应分析特征';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_bar_code IS '对应JSON字段goods_bar_code说明商品条码EAN 等),目前未维护。,示例值及对应分析:说明:';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_category_id IS '对应JSON字段goods_category_id说明商品一级分类 ID。示例值及对应分析取值情况';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_second_category_id IS '对应JSON字段goods_second_category_id说明商品二级分类 ID。示例值及对应分析取值情况';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.categoryName IS '对应JSON字段categoryName说明商品一级分类名称业务可读示例值及对应分析取值情况';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.unit IS '对应JSON字段unit说明计量单位。示例值及对应分析取值共 12 种左右):';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_number IS '对应JSON字段goods_number说明商品内部编码自定义货号/系统货号)。,示例值及对应分析:特征:';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_state IS '对应JSON字段goods_state说明推测商品状态上架/下架等示例值及对应分析1正常/上架;';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.sale_channel IS '对应JSON字段sale_channel说明推测销售渠道类型如“门店堂食/线下零售/线上小程序”等的一种编码。,示例值及对应分析:现有数据只有一个值,说明本门店目前仅通过一种渠道销售这些商品。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.able_discount IS '对应JSON字段able_discount说明推测是否允许参与折扣/打折。示例值及对应分析1允许折扣';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.able_site_transfer IS '对应JSON字段able_site_transfer说明推测示例值及对应分析字面意思是“是否允许门店间调拨/门店级操作”:';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.is_delete IS '对应JSON字段is_delete说明逻辑删除标志。示例值及对应分析0未删除有效商品';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.is_warehousing IS '对应JSON字段is_warehousing说明推测是否启用库存管理。示例值及对应分析1该商品纳入库存管理';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.isInSite IS '对应JSON字段isInSite说明从命名推测是否在当前门店启用/上架。,示例值及对应分析:现象:';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.cost_price IS '对应JSON字段cost_price说明成本价格。示例值及对应分析特征';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.cost_price_type IS '对应JSON字段cost_price_type说明推测示例值及对应分析不同的成本价格来源或计算方式';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.market_price IS '对应JSON字段market_price说明商品标价 / 售价(标准销售单价)。,示例值及对应分析:特征:';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.min_discount_price IS '对应JSON字段min_discount_price说明该商品允许售卖的最低价格底价示例值及对应分析特征';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.common_sale_royalty IS '对应JSON字段common_sale_royalty说明推测普通销售提成比例或提成金额的配置字段。示例值及对应分析当前门店未在商品档案上配置员工提成规则全部为 0。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.point_sale_royalty IS '对应JSON字段point_sale_royalty说明推测积分销售提成/积分赠送规则相关配置。,示例值及对应分析:当前同样未启用。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.pinyin_initial IS '对应JSON字段pinyin_initial说明拼音首字母/助记码。,示例值及对应分析:特征:';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.commodityCode IS '对应JSON字段commodityCode说明示例值及对应分析与 commodity_code 是同一信息的数组形式(冗余存储),便于支持一个商品对应多个编码的场景。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.commodity_code IS '对应JSON字段commodity_code说明商品编码通常为对外商品编码或条码示例值及对应分析特征';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.goods_cover IS '对应JSON字段goods_cover说明商品封面图片 URL 地址。,示例值及对应分析:特征:';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.supplier_id IS '对应JSON字段supplier_id说明供应商 ID用于关联到供应商档案。示例值及对应分析当前所有商品都未挂接具体供应商或门店未使用供应链管理模块';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.remark_name IS '对应JSON字段remark_name说明从命名推断商品备注名/别名,通常用来配置简写或特殊显示名称。,示例值及对应分析:当前门店尚未使用该字段,字段设计为将来扩展预留。';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.create_time IS '对应JSON字段create_time说明商品档案创建时间。示例值及对应分析特征';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.update_time IS '对应JSON字段update_time说明商品档案最近一次修改时间。示例值及对应分析分布';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.tenant_goods_master.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.group_buy_packages (
id BIGINT PRIMARY KEY,
package_id BIGINT,
package_name TEXT,
selling_price NUMERIC(18,2),
coupon_money NUMERIC(18,2),
date_type INT,
date_info TEXT,
start_time TIMESTAMP,
end_time TIMESTAMP,
start_clock TEXT,
end_clock TEXT,
add_start_clock TEXT,
add_end_clock TEXT,
duration INT,
usable_count INT,
usable_range INT,
table_area_id BIGINT,
table_area_name TEXT,
table_area_id_list JSONB,
tenant_table_area_id BIGINT,
tenant_table_area_id_list JSONB,
site_id BIGINT,
site_name TEXT,
tenant_id BIGINT,
card_type_ids JSONB,
group_type INT,
system_group_type INT,
type INT,
effective_status INT,
is_enabled INT,
is_delete INT,
max_selectable_categories INT,
area_tag_type INT,
creator_name TEXT,
create_time TIMESTAMP,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now(),
payload JSONB NOT NULL
);
COMMENT ON TABLE billiards_ods.group_buy_packages IS '对应JSON字段group_buy_packages.json说明ODS 原始明细表保留payload示例值及对应分析详见 group_buy_packages-Analysis.md';
COMMENT ON COLUMN billiards_ods.group_buy_packages.id IS '对应JSON字段id说明门店侧套餐 ID本文件内部的主键。示例值及对应分析特点17 条记录中均为不同的大整数 ID。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.package_id IS '对应JSON字段package_id说明“上层套餐 ID” 或“总部/系统级套餐 ID”。示例值及对应分析特点';
COMMENT ON COLUMN billiards_ods.group_buy_packages.package_name IS '对应JSON字段package_name说明团购套餐名称用于前台展示和核销界面。示例值及对应分析示例';
COMMENT ON COLUMN billiards_ods.group_buy_packages.selling_price IS '对应JSON字段selling_price说明结合字段命名示例值及对应分析语义上应该是“团购售卖价”顾客在平台购买券时的成交价格';
COMMENT ON COLUMN billiards_ods.group_buy_packages.coupon_money IS '对应JSON字段coupon_money说明券面值或内部结算面值表示该套餐在门店侧对应的金额额度。示例值及对应分析示例对应套餐名称';
COMMENT ON COLUMN billiards_ods.group_buy_packages.date_type IS '对应JSON字段date_type说明推测示例值及对应分析典型用法区分“全部日期可用 / 工作日 / 周末 / 指定日期”等。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.date_info IS '对应JSON字段date_info说明推测示例值及对应分析预留字段通常用来存储更细粒度的日期信息如具体日期列表、节假日特殊规则可能是 JSON 字符串或编码)。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.start_time IS '对应JSON字段start_time说明套餐开始生效的日期时间。示例值及对应分析示例"2025-07-20 00:00:00" 等。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.end_time IS '对应JSON字段end_time说明套餐失效的日期时间到这个时间点后不可使用示例值及对应分析示例形如 "2025-11-30 23:59:59",部分记录使用 9999-12-31 23:59:59 风格的极大日期表示长期有效(本数据中如有这种值,可解读为“长期有效”)。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.start_clock IS '对应JSON字段start_clock说明每日可用起始时间点第一段示例值及对应分析说明配合 end_clock 使用,定义一个日内时段。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.end_clock IS '对应JSON字段end_clock说明每日可用的结束时间点第一段示例值及对应分析结构说明';
COMMENT ON COLUMN billiards_ods.group_buy_packages.add_start_clock IS '对应JSON字段add_start_clock说明推测附加可用时间段的起始时间第二段示例值及对应分析例如有的套餐可以在两个不连续的时段使用早场 + 夜场,则可用第一段 start_clock / end_clock 和第二段 add_start_clock / add_end_clock 组合。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.add_end_clock IS '对应JSON字段add_end_clock说明附加时段结束时间多数情况配合 "00:00:00" 或 "10:00:00" 使用。,示例值及对应分析:整体理解:';
COMMENT ON COLUMN billiards_ods.group_buy_packages.duration IS '对应JSON字段duration说明套餐内包含的时长示例值及对应分析与名称一致';
COMMENT ON COLUMN billiards_ods.group_buy_packages.usable_count IS '对应JSON字段usable_count说明可使用次数上限。示例值及对应分析数据特征说明';
COMMENT ON COLUMN billiards_ods.group_buy_packages.usable_range IS '对应JSON字段usable_range说明吻合A区中八/B区中八/斯诺克/KTV/包厢等)。,示例值及对应分析:通过该关联,系统在核销时可以校验:';
COMMENT ON COLUMN billiards_ods.group_buy_packages.table_area_id IS '对应JSON字段table_area_id说明推测示例值及对应分析原始设计应为“单一台区 ID”当套餐只限一个区域可以用这个字段存储。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.table_area_name IS '对应JSON字段table_area_name说明套餐适用的“门店台区名称”用于显示和筛选。示例值及对应分析说明这个字段是对区域 ID 维度的文字描述,便于直观理解。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.table_area_id_list IS '对应JSON字段table_area_id_list说明推测示例值及对应分析用来存放具体台区 ID 列表(例如 "1,2,3"),实现更细粒度的台桌限制。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.tenant_table_area_id IS '对应JSON字段tenant_table_area_id说明推测示例值及对应分析与 table_area_id 类似,是租户层级的台区 ID原本用于单区选择。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.tenant_table_area_id_list IS '对应JSON字段tenant_table_area_id_list说明推测示例值及对应分析实际代表“台区集合 ID”或“租户台区配置 ID”用来限制套餐可用的台区范围。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.site_id IS '对应JSON字段site_id说明门店 ID。示例值及对应分析特点全表值相同且与其他 JSON 文件中的 site_id 一致,对应“朗朗桌球”这家门店。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.site_name IS '对应JSON字段site_name说明门店名称。示例值及对应分析观测值全部为 "朗朗桌球"。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.tenant_id IS '对应JSON字段tenant_id说明租户 ID品牌/商户 ID示例值及对应分析特点全表值相同说明所有套餐定义属于同一商户同一品牌';
COMMENT ON COLUMN billiards_ods.group_buy_packages.card_type_ids IS '对应JSON字段card_type_ids说明推测示例值及对应分析原意是“适用会员卡类型 ID 列表”,例如某套餐只允许某几种会员卡使用,可以在此配置。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.group_type IS '对应JSON字段group_type说明推测示例值及对应分析团购类型例如';
COMMENT ON COLUMN billiards_ods.group_buy_packages.system_group_type IS '对应JSON字段system_group_type说明推测示例值及对应分析系统内对团购类型更底层的划分比如';
COMMENT ON COLUMN billiards_ods.group_buy_packages.type IS '对应JSON字段type说明推测示例值及对应分析内部业务子类型具体含义需要结合系统文档仅从数据无法确定是“台费类 vs 包厢类”还是“平台套餐 vs 自定义套餐”。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.effective_status IS '对应JSON字段effective_status说明结合命名和数据特征推断示例值及对应分析1有效在当前时间区间内、配置正常可核销使用';
COMMENT ON COLUMN billiards_ods.group_buy_packages.is_enabled IS '对应JSON字段is_enabled说明启用状态。示例值及对应分析从其他表的统一风格来看1 一般表示“启用 / 上架”2 表示“停用 / 下架”。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.is_delete IS '对应JSON字段is_delete说明逻辑删除标志。示例值及对应分析0正常';
COMMENT ON COLUMN billiards_ods.group_buy_packages.max_selectable_categories IS '对应JSON字段max_selectable_categories说明?????? group_buy_packages-Analysis.md示例值及对应分析?? group_buy_packages-Analysis.md';
COMMENT ON COLUMN billiards_ods.group_buy_packages.area_tag_type IS '对应JSON字段area_tag_type说明推测区域标记类型示例值及对应分析1 很可能代表“按台区标签限制”,例如 A区、中八区、包厢、KTV 等。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.creator_name IS '对应JSON字段creator_name说明创建人信息一般包含“角色姓名”。示例值及对应分析示例"管理员:郑丽珊"';
COMMENT ON COLUMN billiards_ods.group_buy_packages.create_time IS '对应JSON字段create_time说明该套餐在系统中创建的时间。示例值及对应分析特点每条记录各不相同覆盖了 2025-07 至 2025-10 的创建时间。';
COMMENT ON COLUMN billiards_ods.group_buy_packages.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.group_buy_packages.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.group_buy_packages.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.group_buy_packages.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.group_buy_redemption_records (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
siteName TEXT,
table_id BIGINT,
tableName TEXT,
tableAreaName TEXT,
tenant_table_area_id BIGINT,
order_trade_no TEXT,
order_settle_id BIGINT,
order_pay_id BIGINT,
order_coupon_id BIGINT,
order_coupon_channel INT,
coupon_code TEXT,
coupon_money NUMERIC(18,2),
coupon_origin_id BIGINT,
ledger_name TEXT,
ledger_group_name TEXT,
ledger_amount NUMERIC(18,2),
ledger_count NUMERIC(18,4),
ledger_unit_price NUMERIC(18,4),
ledger_status INT,
table_charge_seconds INT,
promotion_activity_id BIGINT,
promotion_coupon_id BIGINT,
promotion_seconds INT,
offer_type INT,
assistant_promotion_money NUMERIC(18,2),
assistant_service_promotion_money NUMERIC(18,2),
table_service_promotion_money NUMERIC(18,2),
goods_promotion_money NUMERIC(18,2),
recharge_promotion_money NUMERIC(18,2),
reward_promotion_money NUMERIC(18,2),
goodsOptionPrice NUMERIC(18,2),
salesman_name TEXT,
sales_man_org_id BIGINT,
salesman_role_id BIGINT,
salesman_user_id BIGINT,
operator_id BIGINT,
operator_name TEXT,
is_single_order INT,
is_delete INT,
create_time TIMESTAMP,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.group_buy_redemption_records IS '对应JSON字段group_buy_redemption_records.json说明ODS 原始明细表保留payload示例值及对应分析详见 group_buy_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.id IS '对应JSON字段id说明本条“团购套餐流水”记录的 主键 ID。示例值及对应分析作用唯一标识一条券使用到台费上的记录。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.tenant_id IS '对应JSON字段tenant_id说明租户/品牌 ID。示例值及对应分析特点全表值相同说明所有记录属于同一租户。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.site_id IS '对应JSON字段site_id说明门店 ID与其它 JSON 中一致。,示例值及对应分析:关联:';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.siteName IS '对应JSON字段siteName说明门店名称冗余展示用。示例值及对应分析?? group_buy_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.table_id IS '对应JSON字段table_id说明球台 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.tableName IS '对应JSON字段tableName说明本次使用券所关联的 球台名称/台号。,示例值及对应分析:关联:对应台桌列表中的 table_name / table_no通过 table_id 进一步关联。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.tableAreaName IS '对应JSON字段tableAreaName说明该球台所属的 台区名称。,示例值及对应分析:关联:与台区配置中的 area_name 含义一致,与团购套餐定义中的 table_area_name 一致。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.tenant_table_area_id IS '对应JSON字段tenant_table_area_id说明租户级台区分组 ID表示当前使用券的台桌所属的区域组合。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.order_trade_no IS '对应JSON字段order_trade_no说明订单交易号和其它消费明细台费、商品、助教、团购共用的订单主键。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.order_settle_id IS '对应JSON字段order_settle_id说明结算单 ID小票结账主键示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.order_pay_id IS '对应JSON字段order_pay_id说明推测示例值及对应分析指向支付记录表中的支付流水 ID。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.order_coupon_id IS '对应JSON字段order_coupon_id说明订单中“券使用记录”的 ID。示例值及对应分析结构特点';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.order_coupon_channel IS '对应JSON字段order_coupon_channel说明推测示例值及对应分析券渠道类型例如';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.coupon_code IS '对应JSON字段coupon_code说明团购券券码核销时扫描/录入的字符串。,示例值及对应分析:关联:';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.coupon_money IS '对应JSON字段coupon_money说明本次核销时这张券在门店侧对应的金额额度“可抵扣金额”示例值及对应分析结构关系';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.coupon_origin_id IS '对应JSON字段coupon_origin_id说明推测示例值及对应分析平台/上游系统中的券记录主键 ID“券来源 ID”。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_name IS '对应JSON字段ledger_name说明台费侧关联的“团购项目名称”记账名示例值及对应分析结构上通常来源于团购套餐定义的 package_name或由系统在创建活动时生成。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_group_name IS '对应JSON字段ledger_group_name说明推测团购项目所属的“记账分组名称”例如“团购台费”“团购包厢”等示例值及对应分析当前门店未对团购项目做进一步分组。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_amount IS '对应JSON字段ledger_amount说明本次券实际冲抵台费的金额。示例值及对应分析结构关系';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_count IS '对应JSON字段ledger_count说明按此次优惠实际计算的“核销秒数”。示例值及对应分析结构观察';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_unit_price IS '对应JSON字段ledger_unit_price说明对应台费的标准单价单位元/小时从数值来看是类似29.9/小时这种定价)。,示例值及对应分析:作用:配合 ledger_count 用于计算这一条券在台费层面对应的金额(理论上应接近 = 单价 × 秒数/3600';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.ledger_status IS '对应JSON字段ledger_status说明推测流水状态。示例值及对应分析1正常有效';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.table_charge_seconds IS '对应JSON字段table_charge_seconds说明本次结算中该球台总计计费的秒数整台的台费计费时间示例值及对应分析结构特点';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.promotion_activity_id IS '对应JSON字段promotion_activity_id说明推测团购/促销活动 ID。示例值及对应分析对应平台或内部促销活动的主键每个活动通常绑定一个或多个具体套餐promotion_coupon_id';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.promotion_coupon_id IS '对应JSON字段promotion_coupon_id说明团购套餐定义 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.promotion_seconds IS '对应JSON字段promotion_seconds说明团购套餐定义的“标准时长”券本身标称的可用时长示例值及对应分析结构关系';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.offer_type IS '对应JSON字段offer_type说明推测优惠类型。示例值及对应分析在券适用多个优惠方式的系统中一般用来区分“满减/折扣/代金券/套餐券”等。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.assistant_promotion_money IS '对应JSON字段assistant_promotion_money说明分摊到“助教服务”的促销金额。示例值及对应分析当前场景下团购券只与台费相关未涉及助教的金额抵扣。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.assistant_service_promotion_money IS '对应JSON字段assistant_service_promotion_money说明进一步细分助教服务的促销金额。示例值及对应分析当前未使用。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.table_service_promotion_money IS '对应JSON字段table_service_promotion_money说明本次券使用中分摊到“台费服务费”部分的促销金额。示例值及对应分析当前样本中促销金额都在 ledger_amount 中体现,该字段未单独拆出。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.goods_promotion_money IS '对应JSON字段goods_promotion_money说明本次券使用中分摊到“商品”部分的促销金额。示例值及对应分析当前数据中所有团购券都只用于抵扣台费没有用来抵扣商品因此该字段为 0。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.recharge_promotion_money IS '对应JSON字段recharge_promotion_money说明来自“充值类优惠”的分摊金额例如储值赠送部分示例值及对应分析当前所有数据为 0但结构上已经预留了“多来源促销金额分摊”的能力。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.reward_promotion_money IS '对应JSON字段reward_promotion_money说明本次促销中属于“奖励金/积分抵扣”的金额。,示例值及对应分析:当前没有使用此维度的促销。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.goodsOptionPrice IS '对应JSON字段goodsOptionPrice说明按命名推测商品规格价格用于商品类促销分摊时使用。示例值及对应分析当前在“团购套餐流水”中未被实际使用。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.salesman_name IS '对应JSON字段salesman_name说明营业员姓名。示例值及对应分析?? group_buy_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.sales_man_org_id IS '对应JSON字段sales_man_org_id说明营业员所属组织 ID。示例值及对应分析以上 4 个销售相关字段在当前门店的团购套餐使用中都未启用,仅作为结构预留。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.salesman_role_id IS '对应JSON字段salesman_role_id说明营业员角色 ID。示例值及对应分析?? group_buy_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.salesman_user_id IS '对应JSON字段salesman_user_id说明营业员/业务员用户 ID。示例值及对应分析当前所有团购套餐流水都未指定独立的营业员。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.operator_id IS '对应JSON字段operator_id说明执行本次核销/结算操作的 操作员 ID。示例值及对应分析关联可以与员工档案表中的 id 对应(当前导出中员工表未单独给出,但风格和其它表一致)。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.operator_name IS '对应JSON字段operator_name说明操作员名称包含角色说明与 operator_id 对应的冗余展示字段。,示例值及对应分析:?? group_buy_redemption_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.is_single_order IS '对应JSON字段is_single_order说明推测是否单独作为一条订单行。示例值及对应分析1以独立条目方式进行结算绝大部分记录如此';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.is_delete IS '对应JSON字段is_delete说明逻辑删除标志示例值及对应分析0正常';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.create_time IS '对应JSON字段create_time说明本条团购套餐使用流水创建时间即券核销时间或与结账时间接近示例值及对应分析用法可用于按时间范围过滤团购使用记录。';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.group_buy_redemption_records.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.settlement_ticket_details (
orderSettleId BIGINT PRIMARY KEY,
actualPayment NUMERIC(18,2),
adjustAmount NUMERIC(18,2),
assistantManualDiscount NUMERIC(18,2),
balanceAmount NUMERIC(18,2),
cashierName TEXT,
consumeMoney NUMERIC(18,2),
couponAmount NUMERIC(18,2),
deliveryAddress TEXT,
deliveryFee NUMERIC(18,2),
ledgerAmount NUMERIC(18,2),
memberDeductAmount NUMERIC(18,2),
memberOfferAmount NUMERIC(18,2),
onlineReturnAmount NUMERIC(18,2),
orderRemark TEXT,
orderSettleNumber BIGINT,
payMemberBalance NUMERIC(18,2),
payTime TIMESTAMP,
paymentMethod INT,
pointDiscountCost NUMERIC(18,2),
pointDiscountPrice NUMERIC(18,2),
prepayMoney NUMERIC(18,2),
refundAmount NUMERIC(18,2),
returnGoodsAmount NUMERIC(18,2),
rewardName TEXT,
settleType TEXT,
siteAddress TEXT,
siteBusinessTel TEXT,
siteId BIGINT,
siteName TEXT,
tenantId BIGINT,
tenantName TEXT,
ticketCustomContent TEXT,
ticketRemark TEXT,
voucherMoney NUMERIC(18,2),
memberProfile JSONB,
orderItem JSONB,
tenantMemberCardLogs JSONB,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.settlement_ticket_details IS '对应JSON字段settlement_ticket_details.json说明ODS 原始明细表保留payload示例值及对应分析详见 settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.orderSettleId IS '对应JSON字段orderSettleId说明同 data.data.orderSettleId为结算单 ID 的冗余。示例值及对应分析orderType';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.actualPayment IS '对应JSON字段actualPayment说明本单实际支付金额总和顾客本次实际付出现金 + 线上 + 会员余额等)。,示例值及对应分析:一般应与支付记录中各支付流水金额汇总相匹配。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.adjustAmount IS '对应JSON字段adjustAmount说明台费层面的人工调价金额仅台费部分示例值及对应分析memberDiscountAmount';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.assistantManualDiscount IS '对应JSON字段assistantManualDiscount说明针对“助教项目”的人工减免金额汇总整单维度示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.balanceAmount IS '对应JSON字段balanceAmount说明本单通过“会员余额/储值卡”支付的金额(从余额中扣除的总额)。,示例值及对应分析:对应 结账记录.json 的同名字段。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.cashierName IS '对应JSON字段cashierName说明本单结算操作员名称带角色前缀文字示例值及对应分析对应员工维表中的某个账号便于小票上展示“收银员XXX”。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.consumeMoney IS '对应JSON字段consumeMoney说明本单“消费金额总计”原价层面即台费 + 商品 + 助教 + 服务等消费项目的金额总和(未扣除各类优惠)。,示例值及对应分析:对应 结账记录.json 的 consumeMoney 字段。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.couponAmount IS '对应JSON字段couponAmount说明本单由优惠券抵扣的金额汇总。示例值及对应分析结构上应与 orderCouponLedgers.discountAmount 的合计存在关系,但当前导出未填充。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.deliveryAddress IS '对应JSON字段deliveryAddress说明配送地址若存在外送业务时使用示例值及对应分析对于球房场景当前时间范围内未使用。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.deliveryFee IS '对应JSON字段deliveryFee说明配送费金额如果支持外送业务示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.ledgerAmount IS '对应JSON字段ledgerAmount说明按台账口径对应的金额一般与 discountAmount 一致或有固定关系。示例值及对应分析rewardPromotionMoney';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.memberDeductAmount IS '对应JSON字段memberDeductAmount说明结构上会员抵扣的某种数量或金额例如积分抵现金额、次卡次数抵扣等当前数据未启用。示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.memberOfferAmount IS '对应JSON字段memberOfferAmount说明由“会员权益/折扣”产生的优惠金额总计(整单维度)。,示例值及对应分析:与 memberProfile 以及台费/商品明细中的 memberDiscountAmount 有对应关系。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.onlineReturnAmount IS '对应JSON字段onlineReturnAmount说明本单通过线上支付渠道退回的金额如微信/支付宝退款)。,示例值及对应分析:?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.orderRemark IS '对应JSON字段orderRemark说明订单备注由收银员录入用于记录与本单相关的特殊说明。示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.orderSettleNumber IS '对应JSON字段orderSettleNumber说明推测结算单编号与 ID 独立的一套编号体系,如流水号)。当前导出时间段内未启用。,示例值及对应分析:?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.payMemberBalance IS '对应JSON字段payMemberBalance说明结构上使用会员余额支付的金额用于区分与 balanceAmount 的不同维度(如“本次支付使用余额部分”与“余额本身变化”等),当前未实际使用。,示例值及对应分析:?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.payTime IS '对应JSON字段payTime说明本单最终支付成功时间。示例值及对应分析和 结账记录.json 中的 payTime 对应,一般与 支付记录.create_time/pay_time 在同一时间段。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.paymentMethod IS '对应JSON字段paymentMethod说明结算主支付方式编码汇总视角示例值及对应分析对应 结账记录.json 中的 paymentMethod 字段;';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.pointDiscountCost IS '对应JSON字段pointDiscountCost说明积分抵扣对应的成本金额成本侧示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.pointDiscountPrice IS '对应JSON字段pointDiscountPrice说明积分抵扣对应的金额售价侧示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.prepayMoney IS '对应JSON字段prepayMoney说明预付金/定金在本单中使用的金额。,示例值及对应分析:?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.refundAmount IS '对应JSON字段refundAmount说明本单涉及的退款金额汇总示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.returnGoodsAmount IS '对应JSON字段returnGoodsAmount说明本单涉及的退货金额汇总。示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.rewardName IS '对应JSON字段rewardName说明结构上用于标识本单适用的激励方案名称可能用于内部绩效或活动名称展示。示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.settleType IS '对应JSON字段settleType说明结算类型字符串标识。示例值及对应分析"SiteOrder":店内消费订单结算。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.siteAddress IS '对应JSON字段siteAddress说明门店地址详细地址示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.siteBusinessTel IS '对应JSON字段siteBusinessTel说明门店电话。示例值及对应分析用途用于小票打印上的客服电话。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.siteId IS '对应JSON字段siteId说明门店 ID。示例值及对应分析关联';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.siteName IS '对应JSON字段siteName说明门店名称如“朗朗桌球”。示例值及对应分析用途小票上展示门店名。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.tenantId IS '对应JSON字段tenantId说明租户 / 商户 ID品牌维度示例值及对应分析当前数据恒定为同一值表示所有记录都来自同一商户。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.tenantName IS '对应JSON字段tenantName说明租户名称如“朗朗桌球”。示例值及对应分析当前数据全表统一一个值。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.ticketCustomContent IS '对应JSON字段ticketCustomContent说明自定义小票内容如商家自定义宣传语、条款等。示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.ticketRemark IS '对应JSON字段ticketRemark说明小票备注内容可用于打印在小票底部或顶部例如活动说明、特别提示示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.voucherMoney IS '对应JSON字段voucherMoney说明代金券类金额字段可能用于某类“代金券余额”或“券面值”记录示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.memberProfile IS '对应JSON字段memberProfile说明示例值及对应分析不是会员卡主键而是本次结账时的会员信息快照';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.orderItem IS '对应JSON字段orderItem说明本次结算对应的“订单明细列表”这部分是连接“台费流水 / 商品出库 / 券使用”等多个子领域的关键结构。,示例值及对应分析:下面专门展开 orderItem 及其子结构。';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.tenantMemberCardLogs IS '对应JSON字段tenantMemberCardLogs说明?????? settlement_ticket_details-Analysis.md示例值及对应分析?? settlement_ticket_details-Analysis.md';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.settlement_ticket_details.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.store_goods_master (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
siteName TEXT,
tenant_goods_id BIGINT,
goods_name TEXT,
goods_bar_code TEXT,
goods_category_id BIGINT,
goods_second_category_id BIGINT,
oneCategoryName TEXT,
twoCategoryName TEXT,
unit TEXT,
sale_price NUMERIC(18,4),
cost_price NUMERIC(18,4),
cost_price_type INT,
min_discount_price NUMERIC(18,4),
safe_stock NUMERIC(18,4),
stock NUMERIC(18,4),
stock_A NUMERIC(18,4),
sale_num NUMERIC(18,4),
total_purchase_cost NUMERIC(18,4),
total_sales NUMERIC(18,4),
average_monthly_sales NUMERIC(18,4),
enable_status INT,
audit_status INT,
goods_state INT,
is_delete INT,
is_warehousing INT,
able_discount INT,
able_site_transfer INT,
forbid_sell_status INT,
"freeze" INT,
send_state INT,
custom_label_type INT,
option_required INT,
sale_channel INT,
remark TEXT,
pinyin_initial TEXT,
goods_cover TEXT,
create_time TIMESTAMP,
update_time TIMESTAMP,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.store_goods_master IS '对应JSON字段store_goods_master.json说明ODS 原始明细表保留payload示例值及对应分析详见 store_goods_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_master.id IS '对应JSON字段id说明门店商品 ID门店维度的商品主键。示例值及对应分析用途在其它文件中经常以 site_goods_id 的名字出现,与这里的 id 一致,用来关联库存记录、销售记录等。';
COMMENT ON COLUMN billiards_ods.store_goods_master.tenant_id IS '对应JSON字段tenant_id说明租户/品牌 ID。同一品牌下多个门店共享一个 tenant_id。示例值及对应分析枚举情况本文件中为单一固定值同一品牌';
COMMENT ON COLUMN billiards_ods.store_goods_master.site_id IS '对应JSON字段site_id说明门店 ID。示例值及对应分析枚举情况本文件中为单一固定值同一家门店“朗朗桌球”和其它 JSON 中的 site_id 一致。';
COMMENT ON COLUMN billiards_ods.store_goods_master.siteName IS '对应JSON字段siteName说明门店名称是对 site_id 的冗余展示方便直接阅读无需再去关联门店档案。示例值及对应分析2. 商品标识和分类维度';
COMMENT ON COLUMN billiards_ods.store_goods_master.tenant_goods_id IS '对应JSON字段tenant_goods_id说明租户/品牌维度的商品 ID相当于“全局商品 ID”。示例值及对应分析用途用于跨门店或与“商品档案商品档案.json”对齐时使用。';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_name IS '对应JSON字段goods_name说明商品名称例如“合味道泡面”“地道肠”“麻将房茶位费”等。示例值及对应分析用途业务展示字段历史流水里也会冗余存一份商品名。';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_bar_code IS '对应JSON字段goods_bar_code说明商品条形码如 EAN-13 编码),用于扫码销售。此字段设计为可填,但此店目前未配置。,示例值及对应分析:?? store_goods_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_category_id IS '对应JSON字段goods_category_id说明商品一级分类 ID。示例值及对应分析用途';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_second_category_id IS '对应JSON字段goods_second_category_id说明商品二级分类 ID。示例值及对应分析用途';
COMMENT ON COLUMN billiards_ods.store_goods_master.oneCategoryName IS '对应JSON字段oneCategoryName说明一级分类名称如“零食”“酒水”“服务费”等。示例值及对应分析说明与 goods_category_id 一一对应,是易读文本字段。';
COMMENT ON COLUMN billiards_ods.store_goods_master.twoCategoryName IS '对应JSON字段twoCategoryName说明二级分类名称如“面”“洋酒”“纸巾”等。示例值及对应分析说明与 goods_second_category_id 对应。';
COMMENT ON COLUMN billiards_ods.store_goods_master.unit IS '对应JSON字段unit说明商品计量单位销售单位示例值及对应分析?? store_goods_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_master.sale_price IS '对应JSON字段sale_price说明商品标准销售价挂牌价单位为元。示例值及对应分析说明实际结算时可能会打折或用券抵扣但这个字段表示“定价”。';
COMMENT ON COLUMN billiards_ods.store_goods_master.cost_price IS '对应JSON字段cost_price说明商品成本价单件成本示例值及对应分析观察';
COMMENT ON COLUMN billiards_ods.store_goods_master.cost_price_type IS '对应JSON字段cost_price_type说明结合成本字段推测示例值及对应分析1 代表使用“固定成本价”(手工维护的 cost_priceprovisional_total_cost 按“数量 × cost_price”算。';
COMMENT ON COLUMN billiards_ods.store_goods_master.min_discount_price IS '对应JSON字段min_discount_price说明最低允许成交价限价示例值及对应分析用法逻辑推测';
COMMENT ON COLUMN billiards_ods.store_goods_master.safe_stock IS '对应JSON字段safe_stock说明安全库存量阈值低于该值时系统可以提示补货。示例值及对应分析当前门店尚未设置安全库存所以全部为 0仅起到结构占位作用。';
COMMENT ON COLUMN billiards_ods.store_goods_master.stock IS '对应JSON字段stock说明当前可用库存数量以 unit 为单位)。,示例值及对应分析:特征:可以是 0库存卖完也可以非常大例如纸巾、茶位费这种按“份”计的虚拟库存设定';
COMMENT ON COLUMN billiards_ods.store_goods_master.stock_A IS '对应JSON字段stock_A说明系统设计副单位库存数量。如果商品存在双单位例如箱/瓶stock_A 通常用于记录副单位库存。当前门店没有启用副单位库存管理,因此为 0。示例值及对应分析batch_stock_quantity';
COMMENT ON COLUMN billiards_ods.store_goods_master.sale_num IS '对应JSON字段sale_num说明在当前统计口径下的销售数量总销量单位同 unit示例值及对应分析特征和 total_sales 完全一致(当前导出时的统计口径下),说明两者是同一统计周期。';
COMMENT ON COLUMN billiards_ods.store_goods_master.total_purchase_cost IS '对应JSON字段total_purchase_cost说明总采购成本单位为元。示例值及对应分析当前数据与 provisional_total_cost 完全相等。';
COMMENT ON COLUMN billiards_ods.store_goods_master.total_sales IS '对应JSON字段total_sales说明从命名看累计销售数量。示例值及对应分析实际当前数据中 total_sales == sale_num说明此接口的统计区间 = “截至当前的全部历史”,因此数量一致。';
COMMENT ON COLUMN billiards_ods.store_goods_master.average_monthly_sales IS '对应JSON字段average_monthly_sales说明平均月销量件/月),根据某个统计周期内的销售数据折算而来。,示例值及对应分析:结构特征:';
COMMENT ON COLUMN billiards_ods.store_goods_master.enable_status IS '对应JSON字段enable_status说明结合名称与常见编码示例值及对应分析1启用。';
COMMENT ON COLUMN billiards_ods.store_goods_master.audit_status IS '对应JSON字段audit_status说明典型业务语义示例值及对应分析2审核通过。';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_state IS '对应JSON字段goods_state说明类型int枚举示例值及对应分析观察值';
COMMENT ON COLUMN billiards_ods.store_goods_master.is_delete IS '对应JSON字段is_delete说明逻辑删除标志。示例值及对应分析0未删除有效档案';
COMMENT ON COLUMN billiards_ods.store_goods_master.is_warehousing IS '对应JSON字段is_warehousing说明是否纳入库存管理。示例值及对应分析1启用库存管理会有出入库流水';
COMMENT ON COLUMN billiards_ods.store_goods_master.able_discount IS '对应JSON字段able_discount说明结合命名示例值及对应分析是否允许参与折扣。当前全部为 1说明所有商品都允许打折。';
COMMENT ON COLUMN billiards_ods.store_goods_master.able_site_transfer IS '对应JSON字段able_site_transfer说明结合命名与值分布示例值及对应分析表示是否允许跨门店调拨或跨站点共享库存。';
COMMENT ON COLUMN billiards_ods.store_goods_master.forbid_sell_status IS '对应JSON字段forbid_sell_status说明类型int枚举示例值及对应分析观察值全部为 1。';
COMMENT ON COLUMN billiards_ods.store_goods_master."freeze" IS '对应JSON字段freeze说明冻结状态。示例值及对应分析0未冻结';
COMMENT ON COLUMN billiards_ods.store_goods_master.send_state IS '对应JSON字段send_state说明命名趋近“上架状态/可售状态”示例值及对应分析1可销售/可下单。';
COMMENT ON COLUMN billiards_ods.store_goods_master.custom_label_type IS '对应JSON字段custom_label_type说明推测自定义标签类型。示例值及对应分析1使用系统默认标签未出现';
COMMENT ON COLUMN billiards_ods.store_goods_master.option_required IS '对应JSON字段option_required说明推测是否需要在销售时选择规格/选项。示例值及对应分析1不要求额外选项单规格商品';
COMMENT ON COLUMN billiards_ods.store_goods_master.sale_channel IS '对应JSON字段sale_channel说明销售渠道类型。示例值及对应分析常见模式';
COMMENT ON COLUMN billiards_ods.store_goods_master.remark IS '对应JSON字段remark说明商品备注可以写口味说明、供应商、注意事项等。当前尚未使用。示例值及对应分析sort';
COMMENT ON COLUMN billiards_ods.store_goods_master.pinyin_initial IS '对应JSON字段pinyin_initial说明商品名称的拼音首字母缩写有时多个别名用逗号分隔。示例值及对应分析作用';
COMMENT ON COLUMN billiards_ods.store_goods_master.goods_cover IS '对应JSON字段goods_cover说明商品图片 URL如 OSS 对象存储地址),用于前端展示商品图片。,示例值及对应分析:?? store_goods_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_master.create_time IS '对应JSON字段create_time说明门店商品档案创建时间商品在门店建立档案的时间点示例值及对应分析?? store_goods_master-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_master.update_time IS '对应JSON字段update_time说明最后一次修改该商品档案的时间包括价格调整、状态变更等示例值及对应分析days_available';
COMMENT ON COLUMN billiards_ods.store_goods_master.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.store_goods_master.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.store_goods_master.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.store_goods_master.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';
CREATE TABLE IF NOT EXISTS billiards_ods.store_goods_sales_records (
id BIGINT PRIMARY KEY,
tenant_id BIGINT,
site_id BIGINT,
site_goods_id BIGINT,
tenant_goods_id BIGINT,
order_settle_id BIGINT,
order_trade_no TEXT,
order_goods_id BIGINT,
order_pay_id BIGINT,
order_coupon_id BIGINT,
ledger_name TEXT,
ledger_group_name TEXT,
ledger_amount NUMERIC(18,2),
ledger_count NUMERIC(18,4),
ledger_unit_price NUMERIC(18,4),
ledger_status INT,
discount_money NUMERIC(18,2),
coupon_deduct_money NUMERIC(18,2),
member_discount_amount NUMERIC(18,2),
option_coupon_deduct_money NUMERIC(18,2),
option_member_discount_money NUMERIC(18,2),
point_discount_money NUMERIC(18,2),
point_discount_money_cost NUMERIC(18,2),
real_goods_money NUMERIC(18,2),
cost_money NUMERIC(18,2),
push_money NUMERIC(18,2),
sales_type INT,
is_single_order INT,
is_delete INT,
goods_remark TEXT,
option_price NUMERIC(18,2),
option_value_name TEXT,
option_name TEXT,
member_coupon_id BIGINT,
package_coupon_id BIGINT,
sales_man_org_id BIGINT,
salesman_name TEXT,
salesman_role_id BIGINT,
salesman_user_id BIGINT,
operator_id BIGINT,
operator_name TEXT,
openSalesman TEXT,
site_table_id BIGINT,
tenant_goods_business_id BIGINT,
tenant_goods_category_id BIGINT,
create_time TIMESTAMP,
payload JSONB NOT NULL,
source_file TEXT,
source_endpoint TEXT,
fetched_at TIMESTAMPTZ DEFAULT now()
);
COMMENT ON TABLE billiards_ods.store_goods_sales_records IS '对应JSON字段store_goods_sales_records.json说明ODS 原始明细表保留payload示例值及对应分析详见 store_goods_sales_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.id IS '对应JSON字段id说明本条「门店销售流水」记录的主键 ID。示例值及对应分析用途在系统内部唯一标识这一条销售明细。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.tenant_id IS '对应JSON字段tenant_id说明租户/品牌 ID。示例值及对应分析特征所有记录为同一个值对应「非球科技系统中你的商户」。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.site_id IS '对应JSON字段site_id说明门店 ID系统主键示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.site_goods_id IS '对应JSON字段site_goods_id说明门店商品 ID。示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.tenant_goods_id IS '对应JSON字段tenant_goods_id说明租户品牌级商品 ID全局商品 ID示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.order_settle_id IS '对应JSON字段order_settle_id说明与台费、助教、团购套餐流水等表共享形成「订单主表结算 多种明细表」的结构。示例值及对应分析如果结账记录表有数据order_settle_id 对应那里的主键create_time 与订单结束时间基本一致。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.order_trade_no IS '对应JSON字段order_trade_no说明与台费、助教、团购套餐流水等表共享形成「订单主表结算 多种明细表」的结构。示例值及对应分析如果结账记录表有数据order_settle_id 对应那里的主键create_time 与订单结束时间基本一致。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.order_goods_id IS '对应JSON字段order_goods_id说明订单商品明细 ID订单内部的商品行主键示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.order_pay_id IS '对应JSON字段order_pay_id说明连接到「支付记录」中的一条支付流水再通过支付的 relate_type/relate_id 把支付和订单、充值等业务区分开。,示例值及对应分析:对于退款,则通过退款记录里的 relate_type/relate_id 反向关联到原来的订单或支付。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.order_coupon_id IS '对应JSON字段order_coupon_id说明订单级优惠券 ID。示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_name IS '对应JSON字段ledger_name说明销售项目名称商品名称例如 “哇哈哈矿泉水”“地道肠”“东方树叶”等。,示例值及对应分析:说明:业务展示用字段,历史流水即使商品改名,这里会保留当时的名字。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_group_name IS '对应JSON字段ledger_group_name说明销售项目所属的「门店内部分组名称」类似前台菜单分组或大类标签。示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_amount IS '对应JSON字段ledger_amount说明原始应收金额公式上接近 ledger_unit_price × ledger_count。示例值及对应分析说明这是未考虑优惠前的金额基础用于后续计算折扣和抵扣。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_count IS '对应JSON字段ledger_count说明销售数量以 unit 为单位unit 字段在门店商品档案中)。,示例值及对应分析:观测值:如 1, 2, 3, 6, 36 等。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_unit_price IS '对应JSON字段ledger_unit_price说明商品在该次销售中的「结算单价」元/单位示例值及对应分析观测值示例5.0, 8.0, 2.0, 10.0, 72.0 等。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.ledger_status IS '对应JSON字段ledger_status说明销售流水状态。示例值及对应分析1正常有效。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.discount_money IS '对应JSON字段discount_money说明本条销售明细的「价格优惠金额」即原价部分被减免掉的金额。示例值及对应分析典型关系';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.coupon_deduct_money IS '对应JSON字段coupon_deduct_money说明被优惠券 / 团购券直接抵扣到这条商品明细上的金额。,示例值及对应分析:说明:';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.member_discount_amount IS '对应JSON字段member_discount_amount说明由会员身份会员折扣针对这一行商品产生的优惠金额。示例值及对应分析说明尽管字段存在但当前实际折扣可能合并反映在 discount_money 中,这个字段没有拆开体现。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.option_coupon_deduct_money IS '对应JSON字段option_coupon_deduct_money说明由优惠券抵扣“选项价格”的金额。示例值及对应分析上面这三个 option_* 字段,是为“主商品 + 选项”的更复杂计价方式预留的,本店当前所有记录都是单规格,选项体系未启用。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.option_member_discount_money IS '对应JSON字段option_member_discount_money说明由会员折扣作用在“选项价格”上的优惠金额。示例值及对应分析?? store_goods_sales_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.point_discount_money IS '对应JSON字段point_discount_money说明由积分抵扣的金额顾客兑换积分抵现金额示例值及对应分析?? store_goods_sales_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.point_discount_money_cost IS '对应JSON字段point_discount_money_cost说明积分抵扣对应的“成本金额”后台核算用例如按积分成本来计提费用。示例值及对应分析?? store_goods_sales_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.real_goods_money IS '对应JSON字段real_goods_money说明商品实际入账金额考虑折扣、可能还会考虑其它抵扣后的实际销售金额示例值及对应分析观测值5.0, 10.0, 8.0, 6.0, 4.0 等。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.cost_money IS '对应JSON字段cost_money说明本条销售对应的成本金额以元计示例值及对应分析观测示例0.01, 0.00, 3.58, 1.79, 0.64 等。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.push_money IS '对应JSON字段push_money说明本条销售对应的提成金额给营业员/促销员的提成)。,示例值及对应分析:在启用营业员体系时,这里才会出现正数。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.sales_type IS '对应JSON字段sales_type说明销售类型。示例值及对应分析1正常销售';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.is_single_order IS '对应JSON字段is_single_order说明是否单独订单标识。示例值及对应分析1作为独立明细参与某个订单结算';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.is_delete IS '对应JSON字段is_delete说明逻辑删除标志。示例值及对应分析0正常有效';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.goods_remark IS '对应JSON字段goods_remark说明商品备注/口味说明/特殊说明。,示例值及对应分析:用途:点单时如果需要额外说明,可以写在这里。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.option_price IS '对应JSON字段option_price说明商品选项规格/加料)的附加价格。,示例值及对应分析:说明:如加冰、加料、升级大杯等产生附加费用时,理论上应该体现到这里。当前门店未使用此功能。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.option_value_name IS '对应JSON字段option_value_name说明商品选项名称如规格、口味大杯/小杯,不加冰等)。,示例值及对应分析:结构用途:';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.option_name IS '对应JSON字段option_name说明?????? store_goods_sales_records-Analysis.md示例值及对应分析?? store_goods_sales_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.member_coupon_id IS '对应JSON字段member_coupon_id说明会员券 ID比如会员专享优惠券示例值及对应分析当前数据未使用属于为会员权益预留的字段。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.package_coupon_id IS '对应JSON字段package_coupon_id说明套餐券 ID。示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.sales_man_org_id IS '对应JSON字段sales_man_org_id说明营业员所属组织/部门 ID。示例值及对应分析当前门店全部为 0说明未启用这套销售员分组织的体系。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.salesman_name IS '对应JSON字段salesman_name说明营业员姓名如果有为具体销售员记业绩则在此填姓名示例值及对应分析?? store_goods_sales_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.salesman_role_id IS '对应JSON字段salesman_role_id说明营业员的系统角色 ID例如某个角色代码表示“销售员”示例值及对应分析?? store_goods_sales_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.salesman_user_id IS '对应JSON字段salesman_user_id说明营业员用户 ID系统账号 ID示例值及对应分析?? store_goods_sales_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.operator_id IS '对应JSON字段operator_id说明操作员 ID录入这笔销售的员工示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.operator_name IS '对应JSON字段operator_name说明操作员姓名文字冗余。示例值及对应分析?? store_goods_sales_records-Analysis.md';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.openSalesman IS '对应JSON字段openSalesman说明结合系统其它文件推断示例值及对应分析1启用“营业员/销售员”机制(要指定 salesman';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.site_table_id IS '对应JSON字段site_table_id说明球台 ID。示例值及对应分析非 0销售记录关联到具体某张桌台例如顾客在台上点饮料';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.tenant_goods_business_id IS '对应JSON字段tenant_goods_business_id说明租户级商品「业务大类」ID例如“零食类”“酒水类”等更高维度示例值及对应分析2.2 门店 / 球台维度字段';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.tenant_goods_category_id IS '对应JSON字段tenant_goods_category_id说明租户级商品一级分类 ID。示例值及对应分析关系';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.create_time IS '对应JSON字段create_time说明销售记录创建时间通常就是结账时间或录入时间。示例值及对应分析用途用于按时间维度查询销售流水与订单层的时间字段对齐。';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.payload IS '对应JSON字段payload说明完整原始 JSON 内容,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.source_file IS '对应JSON字段source_file说明原始文件名含时间戳后缀示例值及对应分析???????';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.source_endpoint IS '对应JSON字段source_endpoint说明抓取来源接口/URL 标识,示例值及对应分析:???????';
COMMENT ON COLUMN billiards_ods.store_goods_sales_records.fetched_at IS '对应JSON字段fetched_at说明入库时间ETL 拉取时间),示例值及对应分析:???????';