# 云南智慧牛产业平台 - 数据库设计文档

## 1. 设计规范
- **数据库引擎**: MySQL 8.0 InnoDB
- **字符集**: utf8mb4_general_ci
- **命名规范**: 小写下划线命名法 (snake_case)
- **主键策略**: 分布式雪花算法 ID (BIGINT)

## 2. 核心表结构

### 2.1 用户中心
#### 用户表 (`sys_user`)
| 字段名 | 类型 | 长度 | 说明 |
| :--- | :--- | :--- | :--- |
| id | BIGINT | 20 | 主键ID |
| username | VARCHAR | 50 | 用户名 |
| password | VARCHAR | 100 | 密码(BCrypt) |
| phone | VARCHAR | 20 | 手机号 |
| user_type | TINYINT | 4 | 用户类型(1:养殖户 2:交易商 3:监管员 4:银行) |
| status | TINYINT | 4 | 状态(0:禁用 1:正常) |
| create_time | DATETIME | | 创建时间 |

#### 企业/牧场表 (`sys_farm`)
| 字段名 | 类型 | 长度 | 说明 |
| :--- | :--- | :--- | :--- |
| id | BIGINT | 20 | 主键ID |
| user_id | BIGINT | 20 | 关联用户ID |
| farm_name | VARCHAR | 100 | 牧场名称 |
| address | VARCHAR | 200 | 详细地址 |
| license_no | VARCHAR | 50 | 防疫合格证号 |
| scale | INT | 11 | 养殖规模 |

### 2.2 智慧养殖
#### 牛只档案表 (`biz_cattle`)
| 字段名 | 类型 | 长度 | 说明 |
| :--- | :--- | :--- | :--- |
| id | BIGINT | 20 | 主键ID |
| farm_id | BIGINT | 20 | 所属牧场ID |
| ear_tag | VARCHAR | 50 | 耳标号(唯一) |
| breed | VARCHAR | 50 | 品种 |
| gender | TINYINT | 4 | 性别(1:公 2:母) |
| birth_date | DATE | | 出生日期 |
| weight | DECIMAL | 10,2 | 当前体重(kg) |
| status | TINYINT | 4 | 状态(1:在栏 2:出栏 3:死亡) |

#### 健康记录表 (`biz_health_record`)
| 字段名 | 类型 | 长度 | 说明 |
| :--- | :--- | :--- | :--- |
| id | BIGINT | 20 | 主键ID |
| cattle_id | BIGINT | 20 | 牛只ID |
| record_type | TINYINT | 4 | 类型(1:免疫 2:诊疗 3:检疫) |
| description | TEXT | | 详情描述 |
| operate_time | DATETIME | | 操作时间 |
| operator | VARCHAR | 50 | 操作人 |

### 2.3 交易中心
#### 交易订单表 (`trade_order`)
| 字段名 | 类型 | 长度 | 说明 |
| :--- | :--- | :--- | :--- |
| id | BIGINT | 20 | 主键ID |
| order_no | VARCHAR | 64 | 订单编号 |
| seller_id | BIGINT | 20 | 卖家ID |
| buyer_id | BIGINT | 20 | 买家ID |
| amount | DECIMAL | 12,2 | 交易金额 |
| status | TINYINT | 4 | 状态(0:待付款 1:待发货 2:运输中 3:已完成) |
| cattle_ids | JSON | | 关联牛只ID列表 |

### 2.4 基础信息
#### 新闻资讯表 (`cms_news`)
| 字段名 | 类型 | 长度 | 说明 |
| :--- | :--- | :--- | :--- |
| id | BIGINT | 20 | 主键ID |
| title | VARCHAR | 200 | 标题 |
| category | VARCHAR | 50 | 分类(policy/industry/platform) |
| content | LONGTEXT | | 内容(HTML) |
| view_count | INT | 11 | 浏览量 |
| publish_time | DATETIME | | 发布时间 |

## 3. 索引设计
- `sys_user`: `uk_username` (username), `uk_phone` (phone)
- `biz_cattle`: `uk_ear_tag` (ear_tag), `idx_farm_id` (farm_id)
- `trade_order`: `uk_order_no` (order_no), `idx_seller` (seller_id), `idx_buyer` (buyer_id)
