lawyer_user - 律师用户表(✅ 已完成)life_user - 客户端用户表(✅ 已存在)lawyer_legal_problem_scenario - 法律问题场景表(✅ 已完成)lawyer_consultation_order - 咨询订单表(✅ 已完成)lawyer_chat_session - 聊天会话表(✅ 已完成)lawyer_chat_message - 聊天消息表(✅ 已完成)lawyer_service_area - 律师服务领域关联表(✅ 已完成)lawyer_img - 律师图片表(✅ 已完成)lawyer_common_question - 常见问题表(✅ 已完成)lawyer_consultation_review - 咨询评价表(✅ 已完成)lawyer_payment_transaction - 支付交易表(✅ 已完成)lawyer_ai_interaction_log - AI交互日志表(✅ 已完成)lawyer_user_search_history - 用户搜索历史表(✅ 已完成)lawyer_user - 律师用户表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)lawyer_legal_problem_scenario - 法律问题场景表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)lawyer_ai_interaction_log)lawyer_img - 律师图片表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)lawyer_service_area - 律师服务领域关联表id (主键)lawyer_user_id (律师用户ID, FK -> lawyer_user)problem_scenar_id (法律问题场景ID, FK -> lawyer_legal_problem_scenario)sort_order (排序, 数值越小越靠前)status (状态)lawyer_user)lawyer_legal_problem_scenario)lawyer_consultation_order - 咨询订单表(核心业务表)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)lawyer_chat_session - 聊天会话表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)lawyer_chat_message - 聊天消息表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 引用lawyer_common_question - 常见问题表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)lawyer_consultation_review - 咨询评价表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星)lawyer_consultation_order)life_user)lawyer_user)lawyer_payment_transaction - 支付交易表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)lawyer_ai_interaction_log - 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)lawyer_user_search_history - 用户搜索历史表id (主键)client_user_id (用户ID, FK -> life_user)search_keyword (搜索关键词)search_type (搜索类型: 0:律师姓名, 1:法律问题, 2:律所名称)search_time (搜索时间)life_user)life_user - 客户端用户表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)lawyer_ai_interaction_log)lawyer_user_search_history)┌─────────────────────────────────────────────────────────────────────────────┐
│ 核心用户表 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 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 │ │
└─────────────────────────────────────────────────────────────┴──────────────────┘
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交互日志) [多条]
| 子表 | 外键字段 | 父表 | 关系类型 | 说明 |
|---|---|---|---|---|
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 |
多对一 | 多条搜索历史属于一个客户端用户 |
| 表名 | 自关联字段 | 说明 |
|---|---|---|
lawyer_legal_problem_scenario |
parent_id |
树形结构,通过 parent_id 关联自身,实现三级分类 |
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) - 一个订单只能有一个有效评价所有表都使用 delete_flag 字段进行逻辑删除:
delete_flag = 0 - 未删除delete_flag = 1 - 已删除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:认证失败)所有表的主键 id 自动创建主键索引。
所有外键字段都创建索引,提高关联查询性能。
根据常用查询场景创建联合索引:
| 表名 | 联合索引 | 说明 |
|---|---|---|
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) |
律师图片查询 |
created_time - 创建时间索引,用于按时间排序updated_time - 更新时间索引last_message_time - 最后消息时间索引message_timestamp - 消息时间戳索引SELECT lu.*
FROM lawyer_user lu
WHERE lu.id = ? AND lu.delete_flag = 0;
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;
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;
SELECT lcm.*
FROM lawyer_chat_message lcm
WHERE lcm.consultation_order_id = ? AND lcm.delete_flag = 0
ORDER BY lcm.message_timestamp ASC;
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;
统一字段命名规范:
delete_flag, created_time, created_user_id, updated_time, updated_user_idid (INT, AUTO_INCREMENT)xxx_id逻辑删除:
delete_flag 字段进行逻辑删除(0:未删除, 1:已删除)@TableLogic 注解索引设计:
lawyer_user_id + status + delete_flag)金额字段:
时间字段:
created_time: DEFAULT CURRENT_TIMESTAMPupdated_time: DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP数据一致性:
lawyer_user.service_score等)树形结构:
lawyer_legal_problem_scenario 使用 parent_id 实现三级分类parent_code 路径✅ 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 - 客户端用户表(已存在)