ql_apimanager_backend/DatabaseDefine.md
2024-10-24 13:13:17 +00:00

91 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据库定义
### 用户表Users
| 字段名 | 类型 | 描述 | 备注 |
| --------- | -------------------- | -------- | ------------ |
| Id | int | 用户ID | 主键自增 |
| Username | varchar(20) | 用户名 | 唯一 |
| Email | varchar(20) | 邮箱 | 唯一 |
| PassHash | varchar(255) | 密码哈希 | |
| Role | Enum('Admin','User') | 用户角色 | |
| IsBan | boolean | 是否禁用 | |
| Balance | Decimal(10) | 余额 | |
| CreatedAt | Timestamp | 创建时间 | 默认当前时间 |
### API表Apis
| 字段名 | 数据类型 | 描述 | 备注 |
| ------------ | ------------------------------- | ------------- | ---------------------- |
| Id | int | 主键,自增 | |
| Name | varchar(20) | api名称 | |
| Endpoint | varchar(255) | api地址 | |
| Method | enum('GET','POST','PUT',DELETE) | 调用方法 | |
| PackageId | int | 套餐Id | 默认为空(免费无限制) |
| IsThirdParty | boolean | 是否第三方API | |
| IsActive | boolean | 是否启用 | |
| CreatedAt | timestamp | 创建时间 | 默认当前时间 |
### API调用表ApiCallLogs
| 字段名 | 数据类型 | 描述 | 备注 |
| ---------- | --------- | -------------- | ------------ |
| Id | int | 主键,自增 | |
| UserId | int | 外键 | 用户ID |
| ApiId | int | 外键 | APIID |
| CallTime | timestamp | 调用时间 | 默认当前时间 |
| CallResult | int | 调用结果状态码 | |
### 订单表Orders
| 字段名 | 数据类型 | 描述 | 备注 |
| ----------------- | ------------------------------------------------ | ------------------ | -------------------------------- |
| Id | int | 主键,自增 | |
| UserId | int | 外键 | 用户ID |
| OrderNumber | varchar(50) | 订单号 | 唯一订单编号,适合与外部系统对接 |
| ThirdPartyOrderId | varchar(100) | 第三方系统订单编号 | 可用于追踪第三方支付 |
| Amount | decimal(10,2) | 订单金额 | 正数充值或消费,负数表示退款 |
| OrderType | enum('Recharge','Purchase', 'Refund') | 订单类型 | 充值、购买、退款等 |
| Status | enum('Pending','Completed','Cancelled','Failed') | 订单状态 | 订单状态:进行中、完成、取消等 |
| CreatedAt | timestamp | 创建时间 | 订单创建时间 |
| UpdatedAt | timestamp | 更新时间 | 订单状态更新时间 |
| Description | varchar(255) | 订单描述 | 可选的详细信息,解释订单用途 |
### 操作日志表OperationLogs
| 字段名 | 数据类型 | 描述 | 备注 |
| ----------- | ------------ | ------------ | ---------------------------------- |
| Id | int | 主键,自增 | |
| UserId | int | 操作人ID | 操作者的用户ID通常是管理员 |
| Operation | varchar(20) | 操作类型 | 描述操作的具体内容,例如“禁用用户” |
| TargetType | varchar(50) | 目标类型 | 操作的对象类型,例如“用户” |
| TargetId | int | 目标对象ID | 操作对象的具体ID |
| CreatedAt | timestamp | 操作时间 | 操作发生时间 |
| IpAddress | varchar(45) | 操作来源IP | |
| UserAgent | varchar(255) | 操作设备信息 | |
| Description | varchar(255) | 操作描述 | 可选的详细说明,解释操作原因等 |
### 套餐表(ApiPackages)
| 字段名 | 数据类型 | 描述 | 备注 |
| ---------- | ------------- | ------------ | ---------------------- |
| Id | int | 主键,自增 | |
| Name | varchar(20) | 套餐名称 | |
| CallLimit | int | 最大调用次数 | |
| Price | decimal(10,2) | 价格 | |
| ExpiryDate | timestamp | 套餐过期时间 | 可用于控制套餐是否过期 |
| CreatedAt | timestamp | 创建时间 | |
### 用户套餐关系表UserPackages
| 字段名 | 数据类型 | 描述 | 备注 |
| -------------- | --------- | ------------ | ------ |
| Id | int | 主键,自增 | |
| UserId | int | 外键 | 用户ID |
| PackageId | int | 外键 | 套餐ID |
| RemainingCalls | int | 剩余调用次数 | |
| PurchasedAt | timestamp | 购买时间 | |
> [!CAUTION]
>
> 注:删除用户时需要保证数据一致性。