You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.7 KiB
42 lines
1.7 KiB
|
2 weeks ago
|
## ADDED Requirements
|
||
|
|
|
||
|
|
### Requirement: MySQL 连接管理
|
||
|
|
系统应当提供 MySQL 连接管理能力,包括连接初始化、连接池管理和表结构初始化。
|
||
|
|
|
||
|
|
#### Scenario: MySQL 连接初始化成功
|
||
|
|
- **WHEN** 应用启动且 MySQL 配置有效
|
||
|
|
- **THEN** 系统成功建立 MySQL 连接并创建必要的表结构
|
||
|
|
|
||
|
|
#### Scenario: MySQL 连接初始化失败
|
||
|
|
- **WHEN** 应用启动但 MySQL 服务不可用
|
||
|
|
- **THEN** 系统输出错误日志并标记 MySQL 为不可用状态,但不阻止应用启动
|
||
|
|
|
||
|
|
### Requirement: 行情数据持久化存储
|
||
|
|
系统应当使用 MySQL 作为行情数据的主要持久化存储,替代 SQLite。
|
||
|
|
|
||
|
|
#### Scenario: 行情数据写入 MySQL
|
||
|
|
- **WHEN** 刷新接口接收到行情数据更新请求
|
||
|
|
- **THEN** 系统将数据写入 MySQL 的 `market_data` 表
|
||
|
|
|
||
|
|
#### Scenario: 行情数据从 MySQL 读取
|
||
|
|
- **WHEN** Redis 缓存未命中且 MySQL 可用
|
||
|
|
- **THEN** 系统从 MySQL 读取行情数据并返回
|
||
|
|
|
||
|
|
### Requirement: MySQL 表结构迁移
|
||
|
|
系统应当提供从 SQLite 到 MySQL 的数据迁移能力,保证历史数据不丢失。
|
||
|
|
|
||
|
|
#### Scenario: 首次启动数据迁移
|
||
|
|
- **WHEN** 应用首次启动且 MySQL 可用但表为空
|
||
|
|
- **THEN** 系统从 SQLite 读取历史数据并迁移到 MySQL
|
||
|
|
|
||
|
|
#### Scenario: 迁移完成
|
||
|
|
- **WHEN** 数据迁移完成
|
||
|
|
- **THEN** 系统输出迁移成功日志,后续读写直接操作 MySQL
|
||
|
|
|
||
|
|
### Requirement: MySQL 事务支持
|
||
|
|
系统应当使用 MySQL 事务保证数据写入的原子性和一致性。
|
||
|
|
|
||
|
|
#### Scenario: 批量写入事务
|
||
|
|
- **WHEN** 刷新接口需要写入多个品种的行情数据
|
||
|
|
- **THEN** 系统使用事务保证所有数据要么全部写入成功,要么全部回滚
|