【发布时间】:2011-08-09 03:19:20
【问题描述】:
我正在使用 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 和 boolean 存储为 Decimal。我是数据库编程新手,不知道有没有人知道更好的方法?
【问题讨论】:
-
磁盘空间很便宜 - 我认为您的初始方法(转换为十进制)是最佳的,无需摆弄空值或不同的字段。
标签: sql sql-server database types mixed