# 法律咨询平台系统 - 数据库表结构分析

## 一、表结构概览

### 核心用户表（2个）
1. `lawyer_user` - 律师用户表（✅ 已完成）
2. `life_user` - 客户端用户表（✅ 已存在）

### 基础配置表（1个）
3. `lawyer_legal_problem_scenario` - 法律问题场景表（✅ 已完成）

### 核心业务表（4个）
4. `lawyer_consultation_order` - 咨询订单表（✅ 已完成）
5. `lawyer_chat_session` - 聊天会话表（✅ 已完成）
6. `lawyer_chat_message` - 聊天消息表（✅ 已完成）
7. `lawyer_service_area` - 律师服务领域关联表（✅ 已完成）

### 扩展功能表（5个）
8. `lawyer_img` - 律师图片表（✅ 已完成）
9. `lawyer_common_question` - 常见问题表（✅ 已完成）
10. `lawyer_consultation_review` - 咨询评价表（✅ 已完成）
11. `lawyer_payment_transaction` - 支付交易表（✅ 已完成）
12. `lawyer_ai_interaction_log` - AI交互日志表（✅ 已完成）
13. `lawyer_user_search_history` - 用户搜索历史表（✅ 已完成）

---

## 二、详细表结构分析

### 1. `lawyer_user` - 律师用户表
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 存储律师用户的基本信息、认证信息、服务信息等
- **关键字段**:
  - `id` (主键)
  - `phone` (手机号, 唯一)
  - `name` (姓名)
  - `lawyer_certificate_no` (律师执业证号)
  - `law_firm` (所属律师事务所名称)
  - `certification_status` (资质认证状态)
  - `consultation_fee` (咨询收费标准)
  - `agency_fee` (代理收费标准)
  - `service_score` (服务评分)
  - `service_count` (服务次数)
- **关联关系**:
  - **一对多**: 一个律师可以有多个图片 (`lawyer_img`)
  - **一对多**: 一个律师可以有多个服务领域 (`lawyer_service_area`)
  - **一对多**: 一个律师可以有多个咨询订单 (`lawyer_consultation_order`)
  - **一对多**: 一个律师可以有多个聊天会话 (`lawyer_chat_session`)
  - **一对多**: 一个律师可以收到多个评价 (`lawyer_consultation_review`)

---

### 2. `lawyer_legal_problem_scenario` - 法律问题场景表
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 存储法律问题分类的树形结构（一级分类7个，二级分类14个，三级分类30个）
- **关键字段**:
  - `id` (主键)
  - `code` (编号, 如: L1, L1-01, L1-01-01)
  - `name` (名称)
  - `parent_id` (父类主键)
  - `parent_code` (父类编号)
  - `parentName` (父类名称)
  - `sort_order` (排序字段)
  - `status` (状态)
- **关联关系**:
  - **自关联**: 树形结构，通过 `parent_id` 关联自身
  - **一对多**: 一个法律问题场景可以关联多个律师服务领域 (`lawyer_service_area`)
  - **一对多**: 一个法律问题场景可以有多个咨询订单 (`lawyer_consultation_order`)
  - **一对多**: 一个法律问题场景可以有多个常见问题 (`lawyer_common_question`)
  - **一对多**: 一个法律问题场景可以关联多个AI交互日志 (`lawyer_ai_interaction_log`)

---

### 8. `lawyer_img` - 律师图片表
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 存储律师相关的图片（头像、执业证、身份证、案例图片等）
- **关键字段**:
  - `id` (主键)
  - `lawyer_id` (律师用户ID, FK -> lawyer_user)
  - `img_type` (图片类型: 0:其他, 1:头像, 2:执业证照片, 3:身份证正面, 4:身份证反面, 5:案例图片, 6:相册图片, 7:资质证书, 8:荣誉证书, 9:工作照片)
  - `img_url` (图片链接)
  - `img_description` (图片描述)
  - `img_sort` (图片排序)
  - `business_id` (业务ID)
- **关联关系**:
  - **多对一**: 多个图片属于一个律师 (`lawyer_user`)

---

### 7. `lawyer_service_area` - 律师服务领域关联表
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 律师与法律问题场景的多对多关联表（律师擅长哪些领域）
- **关键字段**:
  - `id` (主键)
  - `lawyer_user_id` (律师用户ID, FK -> lawyer_user)
  - `problem_scenar_id` (法律问题场景ID, FK -> lawyer_legal_problem_scenario)
  - `sort_order` (排序, 数值越小越靠前)
  - `status` (状态)
  - **唯一索引**: UK(lawyer_user_id, problem_scenar_id)
- **关联关系**:
  - **多对一**: 多个关联记录属于一个律师 (`lawyer_user`)
  - **多对一**: 多个关联记录关联一个法律问题场景 (`lawyer_legal_problem_scenario`)
  - **作用**: 实现律师与法律问题场景的多对多关系

---

### 4. `lawyer_consultation_order` - 咨询订单表（核心业务表）
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 记录用户与律师之间的咨询订单，是整个业务的核心
- **关键字段**:
  - `id` (主键)
  - `order_number` (订单编号, 唯一, 如: LAW2023071500123)
  - `client_user_id` (客户端用户ID, FK -> life_user)
  - `lawyer_user_id` (律师用户ID, FK -> lawyer_user)
  - `problem_scenar_id` (法律问题场景ID, FK -> lawyer_legal_problem_scenario)
  - `problem_description` (问题描述)
  - `order_amount` (订单金额, 单位:分)
  - `consultation_fee` (咨询费用, 单位:分)
  - `start_time` (咨询开始时间)
  - `end_time` (咨询结束时间)
  - `order_status` (订单状态: 0:待支付, 1:已支付, 2:进行中, 3:已完成, 4:已取消)
  - `payment_status` (支付状态: 0:未支付, 1:已支付)
  - `payment_time` (支付时间)
  - `validity_period` (订单有效期)
  - `rating` (用户评分, 1-5星)
  - `comment` (用户评价内容)
- **关联关系**:
  - **多对一**: 多个订单属于一个客户端用户 (`life_user`)
  - **多对一**: 多个订单属于一个律师 (`lawyer_user`)
  - **多对一**: 多个订单关联一个法律问题场景 (`lawyer_legal_problem_scenario`)
  - **一对多**: 一个订单可以有一个聊天会话 (`lawyer_chat_session`)
  - **一对多**: 一个订单可以有多条聊天消息 (`lawyer_chat_message`)
  - **一对多**: 一个订单可以有多笔支付交易 (`lawyer_payment_transaction`)
  - **一对一**: 一个订单可以有一个评价 (`lawyer_consultation_review`)

---

### 5. `lawyer_chat_session` - 聊天会话表
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 管理咨询会话，关联订单和消息
- **关键字段**:
  - `id` (主键)
  - `consultation_order_id` (咨询订单ID, FK -> lawyer_consultation_order)
  - `client_user_id` (客户端用户ID, FK -> life_user)
  - `lawyer_user_id` (律师用户ID, FK -> lawyer_user)
  - `session_type` (会话类型: 0:文本咨询, 1:语音咨询, 2:视频咨询)
  - `status` (会话状态: 0:未开始, 1:进行中, 2:已结束)
  - `last_message_id` (最后一条消息ID, FK -> lawyer_chat_message)
  - `last_message_time` (最后一条消息时间)
- **关联关系**:
  - **多对一**: 多个会话属于一个咨询订单 (`lawyer_consultation_order`)
  - **多对一**: 多个会话属于一个客户端用户 (`life_user`)
  - **多对一**: 多个会话属于一个律师 (`lawyer_user`)
  - **多对一**: 一个会话的最后一条消息 (`lawyer_chat_message`)
  - **一对多**: 一个会话可以有多条聊天消息 (`lawyer_chat_message`)

---

### 6. `lawyer_chat_message` - 聊天消息表
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 存储咨询会话中的具体聊天消息
- **关键字段**:
  - `id` (主键)
  - `chat_session_id` (聊天会话ID, FK -> lawyer_chat_session)
  - `consultation_order_id` (咨询订单ID, FK -> lawyer_consultation_order, 冗余字段便于查询)
  - `sender_id` (发送者ID, 可以是life_user的id或lawyer_user的id)
  - `sender_type` (发送者类型: 0:客户端用户, 1:律师用户)
  - `message_content` (消息内容, TEXT)
  - `message_type` (消息类型: 0:文本, 1:图片, 2:语音, 3:文件, 4:视频)
  - `media_url` (媒体文件URL)
  - `message_timestamp` (消息发送时间)
  - `read_status` (阅读状态: 0:未读, 1:已读)
  - `read_time` (阅读时间)
- **关联关系**:
  - **多对一**: 多条消息属于一个聊天会话 (`lawyer_chat_session`)
  - **多对一**: 多条消息属于一个咨询订单 (`lawyer_consultation_order`)
  - **被关联**: 可以被 `lawyer_chat_session.last_message_id` 引用

---

### 9. `lawyer_common_question` - 常见问题表
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 存储常见问题及回答（FAQ）
- **关键字段**:
  - `id` (主键)
  - `question_text` (问题文本)
  - `answer_text` (回答内容, TEXT)
  - `category_type` (分类类型: 0:推荐, 1:常见问题)
  - `problem_scenar_id` (关联法律问题场景ID, FK -> lawyer_legal_problem_scenario, 可选)
  - `sort_order` (排序)
  - `view_count` (浏览次数)
  - `status` (状态)
- **关联关系**:
  - **多对一**: 多个常见问题可以关联一个法律问题场景 (`lawyer_legal_problem_scenario`)

---

### 10. `lawyer_consultation_review` - 咨询评价表
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 存储用户对咨询服务的评价
- **关键字段**:
  - `id` (主键)
  - `consultation_order_id` (咨询订单ID, FK -> lawyer_consultation_order)
  - `client_user_id` (评价用户ID, FK -> life_user)
  - `lawyer_user_id` (被评价律师ID, FK -> lawyer_user)
  - `rating` (评分, 1-5星)
  - `comment` (评价内容, TEXT)
  - `service_quality` (服务质量评分, 1-5星)
  - `response_speed` (响应速度评分, 1-5星)
  - `professional_level` (专业水平评分, 1-5星)
  - **唯一索引**: UK(consultation_order_id, delete_flag) - 确保一个订单只有一个有效评价
- **关联关系**:
  - **一对一**: 一个订单对应一个评价 (`lawyer_consultation_order`)
  - **多对一**: 多个评价属于一个客户端用户 (`life_user`)
  - **多对一**: 多个评价属于一个律师 (`lawyer_user`)

---

### 11. `lawyer_payment_transaction` - 支付交易表
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 记录支付交易信息
- **关键字段**:
  - `id` (主键)
  - `consultation_order_id` (咨询订单ID, FK -> lawyer_consultation_order)
  - `client_user_id` (支付用户ID, FK -> life_user)
  - `transaction_number` (交易流水号, 唯一)
  - `transaction_amount` (交易金额, 单位:分)
  - `payment_method` (支付方式: 0:微信, 1:支付宝, 2:银行卡)
  - `transaction_status` (交易状态: 0:待支付, 1:支付成功, 2:支付失败, 3:已退款)
  - `transaction_time` (交易时间)
  - `third_party_trade_no` (第三方交易号)
  - `refund_amount` (退款金额, 单位:分)
  - `refund_time` (退款时间)
- **关联关系**:
  - **多对一**: 多笔交易属于一个咨询订单 (`lawyer_consultation_order`)
  - **多对一**: 多笔交易属于一个客户端用户 (`life_user`)

---

### 12. `lawyer_ai_interaction_log` - AI交互日志表
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 记录用户与AI助手的对话历史
- **关键字段**:
  - `id` (主键)
  - `client_user_id` (客户端用户ID, FK -> life_user)
  - `conversation_id` (会话ID, 用于关联同一会话的多条消息)
  - `query_text` (用户输入内容, TEXT)
  - `response_text` (AI回复内容, TEXT)
  - `problem_scenar_id` (关联的法律问题场景ID, FK -> lawyer_legal_problem_scenario, 可选)
  - `interaction_time` (交互时间)
- **关联关系**:
  - **多对一**: 多条日志属于一个客户端用户 (`life_user`)
  - **多对一**: 多条日志可以关联一个法律问题场景 (`lawyer_legal_problem_scenario`)

---

### 13. `lawyer_user_search_history` - 用户搜索历史表
- **状态**: ✅ 已创建实体类、Mapper、Service、Controller、XML、SQL
- **用途**: 存储用户搜索历史（如：搜索律师姓名、法律问题、律所名称）
- **关键字段**:
  - `id` (主键)
  - `client_user_id` (用户ID, FK -> life_user)
  - `search_keyword` (搜索关键词)
  - `search_type` (搜索类型: 0:律师姓名, 1:法律问题, 2:律所名称)
  - `search_time` (搜索时间)
- **关联关系**:
  - **多对一**: 多条搜索历史属于一个客户端用户 (`life_user`)

---

### 14. `life_user` - 客户端用户表
- **状态**: ✅ 已存在实体类、Mapper、Service、Controller
- **用途**: 存储使用平台进行咨询的普通用户信息（与律师用户区分）
- **关键字段**:
  - `id` (主键)
  - `user_phone` (用户手机号)
  - `guanfang_phone` (官方手机号)
  - `user_name` (用户昵称)
  - `real_name` (真实姓名)
  - `user_sex` (性别, String类型)
  - `user_brithday` (生日, 注意字段名拼写)
  - `user_image` (用户头像URL)
  - `id_card` (身份证号)
  - `province`, `city`, `district`, `address` (地址信息)
  - `jianjie` (简介)
  - `money` (用户余额, 单位:分)
  - `pay_password` (支付密码)
  - `alipay_account` (支付宝账号)
  - `invited_num` (邀请码)
  - `invite_code` (个人邀请码)
  - `bind_invite_code` (绑定他人邀请码)
  - `xiaofei_time` (消费次数)
  - `xiaofei_amount` (消费金额)
  - `chaping_time` (差评次数)
  - `clock_img_id` (打卡广场小人图片id)
  - `logout_flag` (注销标记: 0:未注销, 1:已注销)
  - `logout_reason` (注销原因)
  - `logout_time` (注销申请时间)
- **关联关系**:
  - **一对多**: 一个用户可以有多个咨询订单 (`lawyer_consultation_order`)
  - **一对多**: 一个用户可以有多个聊天会话 (`lawyer_chat_session`)
  - **一对多**: 一个用户可以有多个评价 (`lawyer_consultation_review`)
  - **一对多**: 一个用户可以有多笔支付交易 (`lawyer_payment_transaction`)
  - **一对多**: 一个用户可以有多个AI交互日志 (`lawyer_ai_interaction_log`)
  - **一对多**: 一个用户可以有多个搜索历史 (`lawyer_user_search_history`)

---

## 三、表关系图（ER图）

```
┌─────────────────────────────────────────────────────────────────────────────┐
│                          核心用户表                                           │
├─────────────────────────────────────────────────────────────────────────────┤
│  lawyer_user (律师用户) ──────────┐                                           │
│  life_user (客户端用户) ──────────┼───────────────────────────┐               │
└─────────────────────────────────┼───────────────────────────┼───────────────┘
                                  │                           │
                                  │                           │
┌─────────────────────────────────┼───────────────────────────┼──────────────────┐
│        基础配置表                 │                           │                  │
├─────────────────────────────────┼───────────────────────────┼──────────────────┤
│  lawyer_legal_problem_scenario (法律问题场景)                 │                  │
│       ▲                                                     │                  │
│       │ (1:N)                                               │                  │
└─────────────────────────────────────────────────────────────┼──────────────────┘
                                                              │
┌─────────────────────────────────────────────────────────────┼──────────────────┐
│                   核心业务表                                  │                  │
├─────────────────────────────────────────────────────────────┼──────────────────┤
│  lawyer_consultation_order (咨询订单) ◄──────────────────────┼───────────────────┤
│       │                                                     │                  │
│       │ (1:1)                                               │                  │
│       ├──► lawyer_consultation_review (咨询评价)             │                  │
│       │                                                     │                  │
│       │ (1:N)                                               │                  │
│       ├──► lawyer_payment_transaction (支付交易)             │                  │
│       │                                                     │                  │
│       │ (1:N)                                               │                  │
│       ├──► lawyer_chat_session (聊天会话)                    │                  │
│       │       │                                             │                  │
│       │       │ (1:N)                                       │                  │
│       │       └──► lawyer_chat_message (聊天消息)            │                  │
│       │                                                     │                  │
│                                                             │                  │
│  lawyer_service_area (律师服务领域)                           │                  │
│       │                                                     │                  │
│       ├──► lawyer_user                                      │                  │
│       └──► lawyer_legal_problem_scenario                    │                  │
└─────────────────────────────────────────────────────────────┼──────────────────┘
                                                              │
┌─────────────────────────────────────────────────────────────┼──────────────────┐
│                     扩展功能表                                │                  │
├─────────────────────────────────────────────────────────────┼──────────────────┤
│  lawyer_img (律师图片) ────► lawyer_user                      │                  │
│                                                             │                  │
│  lawyer_common_question (常见问题) ────► lawyer_legal_problem_scenario           │
│                                                             │                  │
│  lawyer_ai_interaction_log (AI交互日志) ────► life_user       │                  │
│                               └───► lawyer_legal_problem_scenario              │
│                                                             │                  │
│  lawyer_user_search_history (搜索历史) ────► life_user       │                   │
└─────────────────────────────────────────────────────────────┴──────────────────┘
```

---

## 四、表关系详细说明

### 4.1 核心业务关系链

#### 业务流程：咨询订单 → 聊天会话 → 聊天消息
```
life_user (客户端用户)
    └──► lawyer_consultation_order (咨询订单)
            ├──► lawyer_chat_session (聊天会话)
            │       └──► lawyer_chat_message (聊天消息) [多条]
            │
            ├──► lawyer_payment_transaction (支付交易) [多条]
            │
            └──► lawyer_consultation_review (咨询评价) [1条]
```

#### 律师信息关系链
```
lawyer_user (律师用户)
    ├──► lawyer_img (律师图片) [多条]
    ├──► lawyer_service_area (服务领域) [多条]
    │       └──► lawyer_legal_problem_scenario (法律问题场景)
    │
    └──► lawyer_consultation_order (咨询订单) [多条]
```

#### 法律问题场景关系链
```
lawyer_legal_problem_scenario (法律问题场景) [树形结构]
    ├──► lawyer_service_area (律师服务领域) [多条]
    │       └──► lawyer_user (律师用户)
    │
    ├──► lawyer_consultation_order (咨询订单) [多条]
    │
    ├──► lawyer_common_question (常见问题) [多条]
    │
    └──► lawyer_ai_interaction_log (AI交互日志) [多条]
```

### 4.2 外键关系汇总

| 子表 | 外键字段 | 父表 | 关系类型 | 说明 |
|------|---------|------|---------|------|
| `lawyer_img` | `lawyer_id` | `lawyer_user` | 多对一 | 多个图片属于一个律师 |
| `lawyer_service_area` | `lawyer_user_id` | `lawyer_user` | 多对一 | 多个服务领域属于一个律师 |
| `lawyer_service_area` | `problem_scenar_id` | `lawyer_legal_problem_scenario` | 多对一 | 多个关联记录关联一个法律问题场景 |
| `lawyer_consultation_order` | `client_user_id` | `life_user` | 多对一 | 多个订单属于一个客户端用户 |
| `lawyer_consultation_order` | `lawyer_user_id` | `lawyer_user` | 多对一 | 多个订单属于一个律师 |
| `lawyer_consultation_order` | `problem_scenar_id` | `lawyer_legal_problem_scenario` | 多对一 | 多个订单关联一个法律问题场景 |
| `lawyer_chat_session` | `consultation_order_id` | `lawyer_consultation_order` | 多对一 | 多个会话属于一个订单 |
| `lawyer_chat_session` | `client_user_id` | `life_user` | 多对一 | 多个会话属于一个客户端用户 |
| `lawyer_chat_session` | `lawyer_user_id` | `lawyer_user` | 多对一 | 多个会话属于一个律师 |
| `lawyer_chat_session` | `last_message_id` | `lawyer_chat_message` | 多对一 | 会话的最后一条消息 |
| `lawyer_chat_message` | `chat_session_id` | `lawyer_chat_session` | 多对一 | 多条消息属于一个会话 |
| `lawyer_chat_message` | `consultation_order_id` | `lawyer_consultation_order` | 多对一 | 多条消息属于一个订单（冗余） |
| `lawyer_common_question` | `problem_scenar_id` | `lawyer_legal_problem_scenario` | 多对一 | 多个常见问题关联一个法律问题场景 |
| `lawyer_consultation_review` | `consultation_order_id` | `lawyer_consultation_order` | 一对一 | 一个订单对应一个评价 |
| `lawyer_consultation_review` | `client_user_id` | `life_user` | 多对一 | 多个评价属于一个客户端用户 |
| `lawyer_consultation_review` | `lawyer_user_id` | `lawyer_user` | 多对一 | 多个评价属于一个律师 |
| `lawyer_payment_transaction` | `consultation_order_id` | `lawyer_consultation_order` | 多对一 | 多笔交易属于一个订单 |
| `lawyer_payment_transaction` | `client_user_id` | `life_user` | 多对一 | 多笔交易属于一个客户端用户 |
| `lawyer_ai_interaction_log` | `client_user_id` | `life_user` | 多对一 | 多条日志属于一个客户端用户 |
| `lawyer_ai_interaction_log` | `problem_scenar_id` | `lawyer_legal_problem_scenario` | 多对一 | 多条日志关联一个法律问题场景 |
| `lawyer_user_search_history` | `client_user_id` | `life_user` | 多对一 | 多条搜索历史属于一个客户端用户 |

### 4.3 自关联关系

| 表名 | 自关联字段 | 说明 |
|------|-----------|------|
| `lawyer_legal_problem_scenario` | `parent_id` | 树形结构，通过 `parent_id` 关联自身，实现三级分类 |

---

## 五、数据完整性约束

### 5.1 唯一约束
- `lawyer_user.phone` - 手机号唯一
- `lawyer_consultation_order.order_number` - 订单编号唯一
- `lawyer_payment_transaction.transaction_number` - 交易流水号唯一
- `lawyer_service_area(lawyer_user_id, problem_scenar_id)` - 律师与法律问题场景的组合唯一
- `lawyer_consultation_review(consultation_order_id, delete_flag)` - 一个订单只能有一个有效评价

### 5.2 逻辑删除
所有表都使用 `delete_flag` 字段进行逻辑删除：
- `delete_flag = 0` - 未删除
- `delete_flag = 1` - 已删除

### 5.3 状态字段
- **订单状态**: `order_status` (0:待支付, 1:已支付, 2:进行中, 3:已完成, 4:已取消)
- **支付状态**: `payment_status` (0:未支付, 1:已支付)
- **交易状态**: `transaction_status` (0:待支付, 1:支付成功, 2:支付失败, 3:已退款)
- **会话状态**: `status` (0:未开始, 1:进行中, 2:已结束)
- **认证状态**: `certification_status` (0:未认证, 1:认证中, 2:已认证, 3:认证失败)

---

## 六、索引设计建议

### 6.1 主键索引
所有表的主键 `id` 自动创建主键索引。

### 6.2 外键索引
所有外键字段都创建索引，提高关联查询性能。

### 6.3 联合索引
根据常用查询场景创建联合索引：

| 表名 | 联合索引 | 说明 |
|------|---------|------|
| `lawyer_user` | `(status, delete_flag)` | 查询可用律师 |
| `lawyer_consultation_order` | `(client_user_id, order_status, delete_flag)` | 用户订单查询（关联life_user） |
| `lawyer_consultation_order` | `(lawyer_user_id, order_status, delete_flag)` | 律师订单查询 |
| `lawyer_chat_message` | `(chat_session_id, message_timestamp, delete_flag)` | 会话消息查询 |
| `lawyer_service_area` | `(lawyer_user_id, problem_scenar_id, delete_flag)` | 律师服务领域查询 |
| `lawyer_img` | `(lawyer_id, img_type, delete_flag)` | 律师图片查询 |

### 6.4 时间字段索引
- `created_time` - 创建时间索引，用于按时间排序
- `updated_time` - 更新时间索引
- `last_message_time` - 最后消息时间索引
- `message_timestamp` - 消息时间戳索引

---

## 七、业务场景查询示例

### 7.1 查询律师的详细信息
```sql
SELECT lu.*
FROM lawyer_user lu
WHERE lu.id = ? AND lu.delete_flag = 0;
```

### 7.2 查询律师的服务领域
```sql
SELECT lsa.*, lps.name as problem_scenario_name
FROM lawyer_service_area lsa
INNER JOIN lawyer_legal_problem_scenario lps ON lsa.problem_scenar_id = lps.id
WHERE lsa.lawyer_user_id = ? AND lsa.delete_flag = 0 AND lsa.status = 1
ORDER BY lsa.sort_order;
```

### 7.3 查询用户的订单列表
```sql
SELECT lco.*, lu.name as lawyer_name, lps.name as problem_scenario_name
FROM lawyer_consultation_order lco
LEFT JOIN lawyer_user lu ON lco.lawyer_user_id = lu.id
LEFT JOIN lawyer_legal_problem_scenario lps ON lco.problem_scenar_id = lps.id
WHERE lco.client_user_id = ? AND lco.delete_flag = 0
ORDER BY lco.created_time DESC;
```

### 7.4 查询订单的聊天记录
```sql
SELECT lcm.*
FROM lawyer_chat_message lcm
WHERE lcm.consultation_order_id = ? AND lcm.delete_flag = 0
ORDER BY lcm.message_timestamp ASC;
```

### 7.5 查询律师的评价统计
```sql
SELECT 
    COUNT(*) as total_reviews,
    AVG(rating) as avg_rating,
    AVG(service_quality) as avg_service_quality,
    AVG(response_speed) as avg_response_speed,
    AVG(professional_level) as avg_professional_level
FROM lawyer_consultation_review
WHERE lawyer_user_id = ? AND delete_flag = 0;
```

---

## 八、注意事项

1. **统一字段命名规范**：
   - 所有表都包含标准字段：`delete_flag`, `created_time`, `created_user_id`, `updated_time`, `updated_user_id`
   - 主键统一使用 `id` (INT, AUTO_INCREMENT)
   - 外键统一命名为 `xxx_id`

2. **逻辑删除**：
   - 所有表都使用 `delete_flag` 字段进行逻辑删除（0:未删除, 1:已删除）
   - 使用 `@TableLogic` 注解

3. **索引设计**：
   - 主键自动创建索引
   - 外键字段创建索引
   - 常用查询字段创建联合索引（如：`lawyer_user_id + status + delete_flag`）

4. **金额字段**：
   - 统一使用 INT 类型，单位：分（避免浮点数精度问题）

5. **时间字段**：
   - `created_time`: DEFAULT CURRENT_TIMESTAMP
   - `updated_time`: DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

6. **数据一致性**：
   - 订单状态变更时，需要同步更新相关表的记录
   - 评价添加后，需要更新律师的评分统计（`lawyer_user.service_score`等）

7. **树形结构**：
   - `lawyer_legal_problem_scenario` 使用 `parent_id` 实现三级分类
   - 查询子节点时使用递归查询或维护 `parent_code` 路径

---

## 九、表状态统计

### 已完成（13个表）
✅ lawyer_user  
✅ lawyer_legal_problem_scenario  
✅ lawyer_img  
✅ lawyer_service_area  
✅ lawyer_consultation_order  
✅ lawyer_chat_session  
✅ lawyer_chat_message  
✅ lawyer_common_question  
✅ lawyer_consultation_review  
✅ lawyer_payment_transaction  
✅ lawyer_ai_interaction_log  
✅ lawyer_user_search_history  
✅ life_user - 客户端用户表（已存在）

