# dim_store_goods_ex 门店商品扩展表

> 生成时间：2026-01-28

## 表信息

| 属性 | 值 |
|------|-----|
| Schema | billiards_dwd |
| 表名 | dim_store_goods_ex |
| 主键 | site_goods_id, scd2_start_time |
| 主表 | dim_store_goods |
| 记录数 | 170 |
| 说明 | 门店商品扩展表，包含单位、成本、库存管理、折扣等详细配置 |

## 字段说明

| 序号 | 字段名 | 类型 | 可空 | 主键 | 说明 |
|------|--------|------|------|------|------|
| 1 | site_goods_id | BIGINT | NO | PK | 门店商品 ID → dim_store_goods |
| 2 | site_name | TEXT | YES | | 门店名称。**当前值**: "朗朗桌球" |
| 3 | unit | TEXT | YES | | 商品单位。**枚举值**: "包"(62), "瓶"(49), "个"(17), "份"(14), "根"(10), "杯"(5), "盒"(4), "桶"(3), "盘"(2), "罐"(1), "支"(1), "双"(1), "张"(1) |
| 4 | goods_barcode | TEXT | YES | | 商品条码（当前数据全为空） |
| 5 | goods_cover_url | TEXT | YES | | 商品封面图 URL |
| 6 | pinyin_initial | TEXT | YES | | 拼音首字母（用于搜索） |
| 7 | stock_qty | INTEGER | YES | | 库存数量 |
| 8 | stock_secondary_qty | INTEGER | YES | | 副单位库存（当前数据全为 0） |
| 9 | safety_stock_qty | INTEGER | YES | | 安全库存（当前数据全为 0） |
| 10 | cost_price | NUMERIC(18,4) | YES | | 成本价 |
| 11 | cost_price_type | INTEGER | YES | | 成本价类型。**枚举值**: 1(160)=**[待确认]**, 2(10)=**[待确认]** |
| 12 | provisional_total_cost | NUMERIC(18,2) | YES | | 暂估总成本 |
| 13 | total_purchase_cost | NUMERIC(18,2) | YES | | 采购总成本 |
| 14 | min_discount_price | NUMERIC(18,2) | YES | | 最低折扣价 |
| 15 | is_discountable | INTEGER | YES | | 允许折扣。**枚举值**: 1(170)=允许 |
| 16 | days_on_shelf | INTEGER | YES | | 上架天数 |
| 17 | audit_status | INTEGER | YES | | 审核状态。**枚举值**: 2(170)=**[待确认]** |
| 18 | sale_channel | INTEGER | YES | | 销售渠道（当前数据全为空） |
| 19 | is_warehousing | INTEGER | YES | | 库存管理。**枚举值**: 1(170)=参与库存管理 |
| 20 | freeze_status | INTEGER | YES | | 冻结状态。**枚举值**: 0(170)=未冻结 |
| 21 | forbid_sell_status | INTEGER | YES | | 禁售状态。**枚举值**: 1(170)=**[待确认]** |
| 22 | able_site_transfer | INTEGER | YES | | 允许店间调拨。**枚举值**: 0(1), 2(169) **[待确认]** |
| 23 | custom_label_type | INTEGER | YES | | 自定义标签类型。**枚举值**: 2(170)=**[待确认]** |
| 24 | option_required | INTEGER | YES | | 选项必填。**枚举值**: 1(170)=**[待确认]** |
| 25 | remark | TEXT | YES | | 备注（当前数据全为空） |
| 26 | sort_order | INTEGER | YES | | 排序序号 |
| 27 | scd2_start_time | TIMESTAMPTZ | NO | PK | SCD2 版本生效时间 |
| 28 | scd2_end_time | TIMESTAMPTZ | YES | | SCD2 版本失效时间 |
| 29 | scd2_is_current | INTEGER | YES | | 当前版本标记 |
| 30 | scd2_version | INTEGER | YES | | 版本号 |

## 使用说明

**版本与最新值**
本表为 SCD2 维度表，版本字段：scd2_start_time / scd2_end_time / scd2_is_current / scd2_version。

- 最新版本：scd2_is_current = 1
- 按业务主键取最新：按 scd2_start_time 倒序

```sql
-- 取某业务主键的最新版本
SELECT *
FROM billiards_dwd.dim_store_goods_ex
WHERE site_goods_id = <value>
ORDER BY scd2_start_time DESC
LIMIT 1;
```
**使用示例**
```sql
-- 关联主表与扩展表
SELECT m.goods_name, m.sale_price, m.sale_qty, e.unit, e.stock_qty, e.cost_price
FROM billiards_dwd.dim_store_goods m
JOIN billiards_dwd.dim_store_goods_ex e
  ON m.site_goods_id = e.site_goods_id
  AND m.scd2_start_time = e.scd2_start_time
WHERE m.scd2_is_current = 1;
```
