- 重命名 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>
58 lines
2.6 KiB
Markdown
58 lines
2.6 KiB
Markdown
# 技术选型
|
||
|
||
> 所属模块:[架构概览](./概览.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>
|
||
``` |