我需要创建一个表来保存由设备 id (int)、logdate (datetime) 和 value (decimal) (SQL Server 2008) 组成的测量值。测量值总是在季度,例如 00:00, 00:15, 00:30, 00:45, 01:00, 01:15 ......所以我认为一个 int 定义了自某个日期以来的季度数量将导致比日期时间更好的性能。
检索通常使用以下方法完成:
-where DeviceId = x and QuarterNumber between a and b
-where DeviceId in (x, y, ...) and QuarterNumber between a and b
-where DeviceId = x and QuarterNumber = a
这张桌子的最佳设计是什么?
PK DeviceId int
PK QuarterNumber int
Value int
或者
PK MeasurementId int
UQ QuarterNumber int
UQ DeviceId int
Value int
(UQ=唯一索引)
还是完全不同的东西?
谢谢!