添加后端代码、数据库文档和FRP配置
This commit is contained in:
283
database_schema_documentation.md
Normal file
283
database_schema_documentation.md
Normal file
@@ -0,0 +1,283 @@
|
||||
# 宠物医院管理系统 - 数据库表结构文档
|
||||
|
||||
## 1. 用户表 (user)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| username | VARCHAR(50) | 用户名,唯一 |
|
||||
| phone | VARCHAR(20) | 手机号 |
|
||||
| email | VARCHAR(100) | 邮箱 |
|
||||
| password | VARCHAR(255) | 密码(加密存储) |
|
||||
| role | VARCHAR(20) | 角色(ADMIN/DOCTOR/CUSTOMER) |
|
||||
| status | INT | 状态(1-启用,0-禁用) |
|
||||
| avatar | VARCHAR(255) | 头像URL |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记(0-未删除,1-已删除) |
|
||||
|
||||
## 2. 医生表 (doctor)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| name | VARCHAR(50) | 医生姓名 |
|
||||
| department | VARCHAR(50) | 所属科室 |
|
||||
| title | VARCHAR(50) | 职称 |
|
||||
| phone | VARCHAR(20) | 联系电话 |
|
||||
| email | VARCHAR(100) | 邮箱 |
|
||||
| avatar | VARCHAR(255) | 头像URL |
|
||||
| status | INT | 状态(1-启用,0-禁用) |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 3. 宠物表 (pet)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| owner_id | BIGINT | 主人ID(外键关联user表) |
|
||||
| name | VARCHAR(50) | 宠物名称 |
|
||||
| species | VARCHAR(50) | 物种(猫/狗等) |
|
||||
| breed | VARCHAR(100) | 品种 |
|
||||
| gender | VARCHAR(10) | 性别(MALE/FEMALE) |
|
||||
| birthday | DATE | 生日 |
|
||||
| weight | DOUBLE | 体重 |
|
||||
| photo | VARCHAR(255) | 照片URL |
|
||||
| remark | TEXT | 备注 |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 4. 预约表 (appointment)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| customer_id | BIGINT | 顾客ID(外键关联user表) |
|
||||
| pet_id | BIGINT | 宠物ID(外键关联pet表) |
|
||||
| doctor_id | BIGINT | 医生ID(外键关联doctor表,可空) |
|
||||
| department | VARCHAR(50) | 科室 |
|
||||
| appointment_date | DATE | 预约日期 |
|
||||
| time_slot | VARCHAR(20) | 预约时段(如:09:00-10:00) |
|
||||
| status | VARCHAR(20) | 状态(PENDING/CONFIRMED/ARRIVED/CANCELLED/NO_SHOW) |
|
||||
| remark | TEXT | 备注 |
|
||||
| cancel_time | TIMESTAMP | 取消时间 |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 5. 就诊记录表 (visit)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| appointment_id | BIGINT | 预约ID(外键关联appointment表,可空) |
|
||||
| customer_id | BIGINT | 顾客ID(外键关联user表) |
|
||||
| pet_id | BIGINT | 宠物ID(外键关联pet表) |
|
||||
| doctor_id | BIGINT | 医生ID(外键关联doctor表) |
|
||||
| symptoms | TEXT | 症状描述 |
|
||||
| diagnosis | TEXT | 诊断结果 |
|
||||
| treatment_plan | TEXT | 治疗方案 |
|
||||
| status | VARCHAR(20) | 状态(IN_PROGRESS/COMPLETED/CANCELLED) |
|
||||
| total_amount | DECIMAL(10,2) | 总金额 |
|
||||
| payment_status | VARCHAR(20) | 支付状态(UNPAID/PAID/REFUNDING/REFUNDED) |
|
||||
| payment_method | VARCHAR(20) | 支付方式(OFFLINE/ALIPAY/WECHAT) |
|
||||
| payment_time | TIMESTAMP | 支付时间 |
|
||||
| start_time | TIMESTAMP | 开始时间 |
|
||||
| end_time | TIMESTAMP | 结束时间 |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 6. 处方表 (prescription)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| visit_id | BIGINT | 就诊ID(外键关联visit表) |
|
||||
| doctor_id | BIGINT | 医生ID(外键关联doctor表) |
|
||||
| customer_id | BIGINT | 顾客ID(外键关联user表) |
|
||||
| total_amount | DECIMAL(10,2) | 总金额 |
|
||||
| status | VARCHAR(20) | 状态(DRAFT/SUBMITTED/ISSUED/VOIDED) |
|
||||
| remark | TEXT | 备注 |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 7. 处方明细表 (prescription_item)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| prescription_id | BIGINT | 处方ID(外键关联prescription表) |
|
||||
| drug_id | BIGINT | 药品ID(外键关联drug表) |
|
||||
| quantity | INT | 数量 |
|
||||
| dosage | VARCHAR(100) | 用量 |
|
||||
| frequency | VARCHAR(50) | 频次 |
|
||||
| duration | VARCHAR(50) | 疗程 |
|
||||
| usage_instructions | TEXT | 用法说明 |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 8. 药品表 (drug)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| name | VARCHAR(100) | 药品名称 |
|
||||
| category | VARCHAR(50) | 分类 |
|
||||
| manufacturer | VARCHAR(100) | 生产厂家 |
|
||||
| specification | VARCHAR(100) | 规格 |
|
||||
| unit_price | DECIMAL(10,2) | 单价 |
|
||||
| stock_quantity | INT | 库存数量 |
|
||||
| unit | VARCHAR(20) | 单位 |
|
||||
| status | INT | 状态(1-启用,0-禁用) |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 9. 订单表 (order_info)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| visit_id | BIGINT | 就诊ID(外键关联visit表,可空) |
|
||||
| customer_id | BIGINT | 顾客ID(外键关联user表) |
|
||||
| amount | DECIMAL(10,2) | 金额 |
|
||||
| status | VARCHAR(20) | 状态(UNPAID/PAID/CANCELLED/REFUNDING/REFUNDED) |
|
||||
| payment_method | VARCHAR(20) | 支付方式(OFFLINE/ALIPAY/WECHAT) |
|
||||
| payment_time | TIMESTAMP | 支付时间 |
|
||||
| remark | TEXT | 备注 |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 10. 病历表 (medical_record)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| visit_id | BIGINT | 就诊ID(外键关联visit表) |
|
||||
| record_type | VARCHAR(50) | 记录类型(CHECKUP/EXAMINATION/DIAGNOSIS/TREATMENT) |
|
||||
| content | TEXT | 内容 |
|
||||
| attachment_urls | TEXT | 附件URL(JSON格式) |
|
||||
| doctor_id | BIGINT | 医生ID(外键关联doctor表) |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 11. 消息表 (message)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| sender_id | BIGINT | 发送者ID(外键关联user表,可空) |
|
||||
| receiver_id | BIGINT | 接收者ID(外键关联user表) |
|
||||
| content | TEXT | 消息内容 |
|
||||
| type | VARCHAR(20) | 类型(NOTICE/CHAT) |
|
||||
| status | VARCHAR(20) | 状态(UNREAD/READ) |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 12. 公告表 (notice)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| title | VARCHAR(200) | 标题 |
|
||||
| content | TEXT | 内容 |
|
||||
| publisher_id | BIGINT | 发布者ID(外键关联user表) |
|
||||
| publish_time | TIMESTAMP | 发布时间 |
|
||||
| status | INT | 状态(1-发布,0-撤销) |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 13. 报表表 (report)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| report_type | VARCHAR(50) | 报表类型(REVENUE/CUSTOMER/PET/DRUG) |
|
||||
| report_data | JSON | 报表数据(JSON格式) |
|
||||
| period_start | DATE | 统计周期开始 |
|
||||
| period_end | DATE | 统计周期结束 |
|
||||
| generated_by | BIGINT | 生成者ID(外键关联user表) |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 14. 入库记录表 (stock_in)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| drug_id | BIGINT | 药品ID(外键关联drug表) |
|
||||
| quantity | INT | 数量 |
|
||||
| unit_price | DECIMAL(10,2) | 单价 |
|
||||
| supplier | VARCHAR(100) | 供应商 |
|
||||
| operator_id | BIGINT | 操作员ID(外键关联user表) |
|
||||
| remark | TEXT | 备注 |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 15. 出库记录表 (stock_out)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| drug_id | BIGINT | 药品ID(外键关联drug表) |
|
||||
| quantity | INT | 数量 |
|
||||
| unit_price | DECIMAL(10,2) | 单价 |
|
||||
| purpose | VARCHAR(100) | 用途(销售/损耗等) |
|
||||
| operator_id | BIGINT | 操作员ID(外键关联user表) |
|
||||
| remark | TEXT | 备注 |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 16. 疫苗接种记录表 (vaccine_record)
|
||||
|
||||
| 字段名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| id | BIGINT | 主键,自增长 |
|
||||
| pet_id | BIGINT | 宠物ID(外键关联pet表) |
|
||||
| vaccine_name | VARCHAR(100) | 疫苗名称 |
|
||||
| dose_number | INT | 剂次 |
|
||||
| injection_date | DATE | 接种日期 |
|
||||
| next_appointment_date | DATE | 下次预约日期 |
|
||||
| doctor_id | BIGINT | 医生ID(外键关联doctor表) |
|
||||
| remark | TEXT | 备注 |
|
||||
| create_time | TIMESTAMP | 创建时间 |
|
||||
| update_time | TIMESTAMP | 更新时间 |
|
||||
| deleted | INT | 删除标记 |
|
||||
|
||||
## 主要业务流程关系
|
||||
|
||||
### 1. 预约流程
|
||||
Customer → Appointment → Visit → Prescription → Order
|
||||
|
||||
### 2. 库存管理
|
||||
Drug ↔ StockIn/StockOut
|
||||
|
||||
### 3. 病历管理
|
||||
Visit → MedicalRecord
|
||||
|
||||
### 4. 疫苗管理
|
||||
Pet → VaccineRecord
|
||||
|
||||
### 5. 消息通知
|
||||
User ↔ Message/Notice
|
||||
|
||||
## 数据完整性约束
|
||||
|
||||
1. **外键约束**:确保所有外键引用的有效性
|
||||
2. **软删除**:使用deleted字段实现软删除,保留历史数据
|
||||
3. **时间戳**:所有表都有create_time和update_time字段
|
||||
4. **默认值**:合理设置字段默认值(如status默认为1)
|
||||
5. **枚举约束**:状态字段使用预定义的枚举值
|
||||
Reference in New Issue
Block a user