dim_product — Dimension sản phẩm / ngành
Bảng chiều sản phẩm — chiều gốc của mô hình kế hoạch (product-anchored) và là nơi định nghĩa duy nhất Business Line (Ngành). Trước đây logic Ngành nằm rải rác (multiIf lặp ở 3 bảng fact); nay gom về một chỗ, các fact join vào — sửa một ngành chỉ sửa một nơi.
- Grain: một dòng = một sản phẩm (
product.template). Khoá = tên sản phẩm (khớp cộtproducttrên các fact; 37 sản phẩm, tên ↔ template là 1-1). - Engine:
MergeTree· ORDER BY(business_line, product). - Nguồn (dbt):
stg_product_template⋈stg_product_category(Ngành + Nhóm) ⋈stg_product_product(giá vốn + SKU, gộp biến thể về template). - Dùng bởi:
fct_sales,fct_purchase,fct_inventory(joinproduct→business_line;fct_saleslấy thêmcategory). → downstreamfct_plan/fct_plan_actualthừa hưởng Ngành.
Phân cấp
Phần tiêu đề “Phân cấp”Ngành (business_line) → Nhóm (category) → Sản phẩm (product) — dùng để drill trong Cube/pivot, song song với Tỉnh → Miền (dim_vn_geo) và Khách → Nhóm KH (dim_customer).
| Cột | Kiểu | Mô tả |
|---|---|---|
product | String | Tên sản phẩm — khoá join với fact. Từ product_template.name (đã tách jsonb vi_VN). |
sku | Nullable(String) | Mã sản phẩm (default_code), gộp từ biến thể. |
business_line | String | Ngành hàng — định nghĩa 1 nơi bằng multiIf trên danh mục: Office→Nội thất Văn phòng, Furniture/Home Construction→Nội thất Gia đình, Outdoor→Nội thất Ngoài trời, Services→Dịch vụ Thiết kế & Tư vấn, còn lại→Hàng hoá khác. |
category | String | Nhóm sản phẩm (danh mục Odoo: Office/Furniture/Services…). |
product_type | String | Loại: Hàng hoá / Dịch vụ / Combo (từ product.type). |
unit_cost | Float64 | Giá vốn chuẩn (product.standard_price; 0 nếu Odoo demo để trống). |
list_price | Float64 | Giá niêm yết (product.list_price). |
Chiều trong Cube sales
Phần tiêu đề “Chiều trong Cube sales”Ngành hàng (business_line) · Nhóm sản phẩm (category) · Sản phẩm (product) — ba cấp phân cấp SP, slice cùng mọi chỉ tiêu bán hàng (doanh thu, giá vốn, biên LN…).
Quan hệ
Phần tiêu đề “Quan hệ”product(trên fact) →dim_product→business_line(Ngành) +category(Nhóm).- Một sản phẩm có thể có mặt trong
dim_productnhưng chưa phát sinh bán (ví dụ Local Delivery) — đúng bản chất bảng chiều: chứa toàn bộ danh mục, không chỉ SP đã bán.