0

我需要存储未知类型(但可以在存储前检查)(抽象类型)数据。我可以看到存储它的两种变体。

检查数据类型并移动到特定类型的表。拥有许多特定于类型的东西不利于抽象。

或将所有内容存储为变体。

会有很多数据,我担心将布尔类型的数据保存到 sql_variant 会导致过多的内存浪费。是这样吗?

这种情况还有其他解决方案吗?

4

1 回答 1

1

很难从您的问题中确定正确答案。

您期望成为哪些数据类型以及您将如何处理这些类型?

因为,如果你要为每种类型创建许多表,你最终会比使用 sql_variant 类型更复杂并且在磁盘上更大。请记住,当使用 sql_variant 表示布尔值时,只会表示 1 个字节的开销(用于存储数据类型类型)+ 可变长度字节(您可能已经在表中拥有)。但是,如果您在某些复杂的关键任务逻辑之前使用该类型,并且如果您的数据访问框架不支持 sql_variant,则不应使用 sql_variant。

于 2013-07-09T09:15:51.673 回答