# 数据库设计

## 概述

本项目使用MySQL作为主要的关系型数据库，存储用户信息、牛只档案、交易记录、监管数据等核心业务数据。

## 数据库设计规范

1. 使用InnoDB存储引擎
2. 字符集使用utf8mb4
3. 所有表都有创建时间和更新时间字段
4. 主键使用自增ID
5. 外键约束用于保证数据一致性

## 备份与恢复策略
- **每日全量备份**: 通过`mysqldump`导出数据
- **Binlog增量备份**: 实时同步到备份服务器
- **恢复测试**: 每月验证备份文件可用性

## 数据迁移工具
- 使用Flyway管理数据库版本变更
- 迁移脚本存放在`/migrations`目录

## 核心数据表

### 1. 用户表 (users)
存储系统用户信息，包括牧民、银行职员、保险员、政府监管人员等。

### 2. 角色表 (roles)
存储系统角色信息，如管理员、牧民、银行职员等。

### 3. 权限表 (permissions)
存储系统权限信息。

### 4. 牛只档案表 (cattle)
存储牛只基本信息，包括品种、年龄、健康状况等。

### 5. 饲养记录表 (feeding_records)
存储牛只饲养记录，包括饲料、疫苗、治疗等信息。

### 6. 繁殖记录表 (breeding_records)
存储牛只繁殖相关信息。

### 7. 交易记录表 (transactions)
存储活牛交易记录。

### 8. 合同表 (contracts)
存储交易合同信息。

### 9. 商品表 (products)
存储牛肉商城商品信息。

### 10. 订单表 (orders)
存储用户订单信息。

## 数据库脚本

数据库初始化脚本和迁移脚本将存放在此目录中。