docs: 完善数据模型设计
- 重命名 log_file 为 test_scenario(测试场景) - 拆分维度表:tx_panel、tx_hardware、tx_software、rx_type - 采用星型模型设计,消除数据冗余 - 为所有表添加软删除字段 is_deleted - 更新关系说明,包含全局查询过滤器配置 - 更新 ER 图和查询示例 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
58
docs/architecture/技术选型.md
Normal file
58
docs/architecture/技术选型.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# 技术选型
|
||||
|
||||
> 所属模块:[架构概览](./概览.md)
|
||||
|
||||
---
|
||||
|
||||
## 1. 技术栈总览
|
||||
|
||||
| 层级 | 技术选型 | 版本 | 选型理由 |
|
||||
|------|----------|------|----------|
|
||||
| 运行时 | .NET | 8.0 LTS | 长期支持版本,性能优秀,跨平台 |
|
||||
| 语言 | C# | 12.0 | 强类型、现代语法、优秀的正则表达式支持 |
|
||||
| ORM | Entity Framework Core | 8.0 | .NET 标准 ORM,Code First 支持,LINQ 查询 |
|
||||
| 数据库 | SQLite / PostgreSQL | - | SQLite 适合单机;PostgreSQL 适合多用户并发 |
|
||||
| 日志框架 | Serilog | 4.0+ | 结构化日志,多种 Sink 支持 |
|
||||
| 配置管理 | Microsoft.Extensions.Configuration | - | 强类型配置,支持 JSON/环境变量 |
|
||||
| CLI 框架 | System.CommandLine | 2.0-beta4 | 官方 CLI 库,参数解析完善 |
|
||||
| 正则表达式 | System.Text.RegularExpressions | - | .NET 原生支持,编译正则高效 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 技术决策记录
|
||||
|
||||
| # | 决策点 | 选择 | 备选方案 | 决策理由 |
|
||||
|---|--------|------|----------|----------|
|
||||
| 1 | .NET 版本 | .NET 8.0 LTS | .NET 9.0 | LTS 版本稳定,企业级应用首选 |
|
||||
| 2 | 数据库选择 | SQLite(当前)/ PostgreSQL(后续) | SQL Server | 初期单机使用 SQLite,后续可切换 PostgreSQL |
|
||||
| 3 | 解析模式 | 批处理 | 流式处理 | 日志文件是静态文件,批处理更合适 |
|
||||
| 4 | 数据格式 | 结构化存储 | 原始存储 + 计算 | 解析后存储便于后续分析 |
|
||||
| 5 | ORM 模式 | Code First | Database First | 便于版本控制,迁移自动化 |
|
||||
| 6 | 数据库切换 | 抽象 DbContext 工厂 | 硬编码连接 | 支持配置切换数据库类型 |
|
||||
|
||||
---
|
||||
|
||||
## 3. NuGet 包依赖
|
||||
|
||||
```xml
|
||||
<ItemGroup>
|
||||
<!-- ORM -->
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.0" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.0" />
|
||||
|
||||
<!-- CLI -->
|
||||
<PackageReference Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
|
||||
|
||||
<!-- 配置 -->
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
|
||||
|
||||
<!-- 日志 -->
|
||||
<PackageReference Include="Serilog" Version="4.0.0" />
|
||||
<PackageReference Include="Serilog.Extensions.Hosting" Version="8.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||
</ItemGroup>
|
||||
```
|
||||
Reference in New Issue
Block a user