我正在使用 MSSQL server 2005 设计一个数据库来存储来自不同设备的日志值。值的数据类型可以是 boolean、int-32 或 64 bit-double
将有一个名为的查找表channels
:
ID(PK) | int32
device_name | varchar(32)
将有一个表调用values
来存储该值。所以 boolean 和 int-32,double 值将被转换为 DECIMAL 数据类型。
ID(foreign key to ID@channels) | int32
logtime | DATETIME
value | DECIMAL
我这样做的原因是最终用户可以在一个表上使用简单的选择语句来选择数据,例如
select logtime,value from values where ID = 1
不知道通道的数据类型。
但这是浪费内存,因为现在我将 int32 和布尔值存储为十进制。我是数据库编程的新手,我想知道是否有人知道更好的方法来做到这一点?