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