# 01 表清单与职责划分（按业务域）

本节将 `ml_` 前缀的商城域表按业务域归类，并给出每张表的核心职责、关键字段与主要关联。

> 说明：用户主表复用 `public.ak_users`，商城域通过外键 `user_id/merchant_id` 关联。

---

## 1. 用户域（Account Extension）

### 1.1 `ml_user_profiles`（用户扩展档案）

- **职责**：承载商城侧的用户扩展信息（状态、实名、信用分、认证信息、偏好等）。
- **关键字段**：
  - `user_id`：外键到 `ak_users(id)`（且 `UNIQUE`，保证一用户一档案）
  - `status`：用户状态（正常/冻结/注销/待审核）
  - `verification_status`、`verification_data`：认证状态及数据（JSONB）
  - `preferences`：用户偏好（JSONB）
- **主要关联**：
  - `ml_user_profiles.user_id -> ak_users.id`

### 1.2 `ml_user_addresses`（用户地址）

- **职责**：用户收货地址（并支持默认地址）。
- **关键字段**：
  - `user_id`：外键到 `ak_users(id)`
  - `is_default`：是否默认地址（由触发器确保单一默认）
  - `province/city/district/address_detail`：地址结构化字段
- **主要关联**：
  - `ml_user_addresses.user_id -> ak_users.id`

---

## 2. 商品域（Catalog）

### 2.1 `ml_categories`（商品分类）

- **职责**：商品分类树，支持 SEO（`cid/slug`）与层级路径。
- **关键字段**：
  - `parent_id`：自关联
  - `path TEXT[]`：分类路径（便于面包屑、筛选等）
  - `cid`：对外友好 ID
  - `slug`：SEO slug
- **主要关联**：
  - `ml_categories.parent_id -> ml_categories.id`

### 2.2 `ml_brands`（品牌）

- **职责**：品牌维度，支持 SEO（`cid`）。
- **关键字段**：`name/logo_url/is_active/cid`

### 2.3 `ml_products`（商品 SPU）

- **职责**：商品主表（SPU），包含：定价、库存汇总、SEO、属性、统计。
- **关键字段**：
  - `merchant_id`：商家（关联 `ak_users`）
  - `category_id`、`brand_id`
  - `base_price/market_price/cost_price`
  - `total_stock/available_stock`（由 SKU 触发器汇总维护）
  - `status`（上架/下架/草稿/删除）
  - `image_urls/video_urls/attributes`（JSONB）
  - `cid/slug/seo_*`
- **主要关联**：
  - `ml_products.merchant_id -> ak_users.id`
  - `ml_products.category_id -> ml_categories.id`
  - `ml_products.brand_id -> ml_brands.id`

### 2.4 `ml_product_skus`（商品 SKU）

- **职责**：SKU 明细：规格组合、SKU 价格与库存。
- **关键字段**：
  - `product_id`：所属 SPU
  - `specifications JSONB`：规格组合（例如 `{color:"black", size:"M"}`）
  - `price/stock/status`
- **主要关联**：
  - `ml_product_skus.product_id -> ml_products.id`

### 2.5 `ml_product_specs`（商品规格定义）

- **职责**：描述一个商品有哪些规格项及可选值（用于生成 SKU）。
- **关键字段**：
  - `spec_name`（如 颜色/尺寸）
  - `spec_values JSONB`（如 `["black","white"]`）

---

## 3. 店铺域（Merchant/Shop）

### `ml_shops`（店铺）

- **职责**：店铺信息（当前模型约束“一商家一店”）。
- **关键字段**：
  - `merchant_id UNIQUE`：一对一约束
  - `status`（正常/暂停/关闭）
  - `address/business_hours`（JSONB）
  - `rating_avg/rating_count/product_count/order_count`（统计类）

---

## 4. 交易域（Order/Trade）

### 4.1 `ml_orders`（订单主表）

- **职责**：订单交易核心，含金额、地址快照、状态机、关键时间点。
- **关键字段**：
  - `order_no`：订单号（可由序列+函数生成）
  - `user_id`：买家
  - `merchant_id`：商家（当前单商家订单模型）
  - 金额拆分：`product_amount/discount_amount/shipping_fee/total_amount/paid_amount`
  - `shipping_address JSONB`：下单快照地址
  - 状态机：`order_status/payment_status/shipping_status`
  - 时间点：`paid_at/shipped_at/delivered_at/completed_at`

### 4.2 `ml_order_items`（订单明细）

- **职责**：订单行项目，保存下单快照（防止商品信息后改影响历史订单）。
- **关键字段**：
  - `order_id` 外键
  - `product_id/sku_id`
  - `product_name/sku_name/specifications/image_url/price`（快照冗余）
  - `quantity/total_amount`

---

## 5. 购物车域

### `ml_shopping_cart`

- **职责**：购物车行项目。
- **关键字段**：
  - `user_id/product_id/sku_id`
  - `quantity`、`selected`
  - `UNIQUE(user_id, product_id, sku_id)`：避免重复行

---

## 6. 营销域（Coupon）

### 6.1 `ml_coupon_templates`（优惠券模板）

- **职责**：券模板定义；支持平台券（`merchant_id` 为空）与商家券。
- **关键字段**：
  - `coupon_type`（满减/折扣/免邮）
  - `discount_type`（固定金额/百分比）
  - `discount_value/min_order_amount/max_discount_amount`
  - `applicable_products/applicable_categories`（JSONB）
  - `start_time/end_time/status`

### 6.2 `ml_user_coupons`（用户优惠券）

- **职责**：用户领取的券实例，包含券码与使用归因。
- **关键字段**：
  - `coupon_code`（唯一）
  - `status`（未用/已用/过期）
  - `used_at/order_id`

---

## 7. 履约域（Delivery）

### 7.1 `ml_delivery_drivers`（配送员）

- **职责**：配送员信息与工作状态。
- **关键字段**：
  - `user_id UNIQUE`：一个用户对应一个配送员档案
  - `work_status/status`、位置信息、统计与评分

### 7.2 `ml_delivery_tasks`（配送任务）

- **职责**：配送任务与订单 1:1 绑定。
- **关键字段**：
  - `order_id UNIQUE`：一个订单最多一个配送任务
  - `driver_id`
  - `pickup_address/delivery_address`（JSONB 快照）
  - `status`、`assigned_at/picked_at/delivered_at`

---

## 8. 评价域（Review）

### `ml_product_reviews`

- **职责**：商品评价；通过 `order_id + order_item_id` 强绑定订单来源。
- **关键字段**：
  - `order_id`、`order_item_id`
  - `rating/content/images`
  - `merchant_reply/merchant_replied_at`

---

## 9. 用户行为域（Behavior）

### 9.1 `ml_user_favorites`（收藏）

- **职责**：收藏（多态目标：商品/店铺）。
- **关键字段**：
  - `target_type`（1 商品 / 2 店铺）
  - `target_id`
  - `UNIQUE(user_id, target_type, target_id)`

### 9.2 `ml_browse_history`（浏览历史）

- **职责**：浏览记录（当前模型倾向“同商品最后一次浏览覆盖”）。
- **关键字段**：`UNIQUE(user_id, product_id)`

### 9.3 `ml_search_history`（搜索记录）

- **职责**：搜索日志（可用于热词/推荐/分析）。
- **关键字段**：`keyword/result_count/ip_address/user_agent`

---

## 10. 配置与地区

### 10.1 `ml_system_configs`（系统配置）

- **职责**：配置中心（JSONB），如运费、佣金比例、订单自动确认天数等。
- **关键字段**：`config_key` 唯一、`config_value JSONB`

### 10.2 `ml_regions`（地区）

- **职责**：地区树（省/市/区/街道）。

---

## 11. 订阅模块（Subscription）

### 11.1 `ml_subscription_plans`（订阅套餐）

- **职责**：订阅计划定义（计费周期、价格、试用天数、features）。
- **关键字段**：`plan_code` 唯一、`billing_period`、`features JSONB`

### 11.2 `ml_user_subscriptions`（用户订阅）

- **职责**：用户订阅实例（状态机、自动续费、下次扣费时间等）。
- **关键字段**：`status`（trial/active/past_due/canceled/expired）、`auto_renew`、`metadata JSONB`
