package models import ( "time" "gorm.io/datatypes" ) // SensorData 存储所有类型的传感器数据,对应数据库中的 'sensor_data' 表。 type SensorData struct { // Time 是数据记录的时间戳,作为复合主键的一部分。 // GORM 会将其映射到 'time' TIMESTAMPTZ 列。 Time time.Time `gorm:"primaryKey"` // DeviceID 是传感器的唯一标识符,作为复合主键的另一部分。 // GORM 会将其映射到 'device_id' VARCHAR(50) 列。 DeviceID string `gorm:"primaryKey;size:50"` // RegionalControllerID 是上报此数据的区域主控的ID。 // 我们为其添加了数据库索引以优化按区域查询的性能。 RegionalControllerID string `gorm:"size:50;index"` // Data 存储一个或多个传感器读数,格式为 JSON。 // GORM 会使用 'jsonb' 类型来创建此列。 Data datatypes.JSON `gorm:"type:jsonb"` } func (SensorData) TableName() string { return "sensor_data" }