gpt4 book ai didi

sql - 将多种数据类型存储到数据库中的最佳方法是什么

转载 作者:搜寻专家 更新时间:2023-10-30 19:40:42 24 4
gpt4 key购买 nike

我正在使用 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 不知道 channel 的数据类型。

但这是浪费内存,因为现在我将 int32 和 boolean 存储为 Decimal。我是数据库编程的新手,不知道是否有人知道更好的方法?

最佳答案

您可以存储 3 个可为空的单独字段。两个将具有 NULL 值,第三个将具有实际值(您甚至可以使用 CHECK 约束强制执行,即三个中的一个不为 NULL)。 NULL 值不占用空间。您可以添加一个将非空值公开为伪列的计算值。

或者您可以使用 sql_variant field 。 sql_variant 可以存储多种类型并保留类型元数据(类型、精度、小数位数)。

关于sql - 将多种数据类型存储到数据库中的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5724618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com