Files
WCTDataMiner/docs/data-model/entities/TxHardware维度.md
ssss 28cb2533a7 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>
2026-07-02 15:53:30 +08:00

1.8 KiB
Raw Blame History

tx_hardware 维度表

所属模块:数据模型概览


1. 表定义

表名tx_hardware

描述TX硬件版本维度表存储所有硬件版本号


2. 字段定义

列名 类型 约束 说明
id UUID PK, NOT NULL 主键,自动生成
version VARCHAR(50) UNIQUE, NOT NULL 硬件版本号
is_deleted BOOLEAN NOT NULL, DEFAULT FALSE 软删除标记
created_at TIMESTAMP NOT NULL, DEFAULT NOW() 创建时间

3. EF Core 模型

// Models/TxHardware.cs
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace WCTDataMiner.Models;

[Table("tx_hardware")]
public class TxHardware
{
    [Key]
    [Column("id")]
    public Guid Id { get; set; } = Guid.NewGuid();

    [Required]
    [MaxLength(50)]
    [Column("version")]
    public string Version { get; set; } = null!;

    [Required]
    [Column("is_deleted")]
    public bool IsDeleted { get; set; } = false;

    [Required]
    [Column("created_at")]
    public DateTime CreatedAt { get; set; } = DateTime.UtcNow;

    // Navigation Properties
    public ICollection<TestScenario> TestScenarios { get; set; } = [];
}

4. 使用说明

硬件版本在解析文件名时自动创建,无需预置数据:

// 获取或创建硬件版本
public async Task<TxHardware> GetOrCreateAsync(string version)
{
    var existing = await context.TxHardwares
        .FirstOrDefaultAsync(h => h.Version == version);
    
    if (existing != null) return existing;
    
    var newHardware = new TxHardware { Version = version };
    context.TxHardwares.Add(newHardware);
    await context.SaveChangesAsync();
    return newHardware;
}