我需要存储未知类型(但可以在存储之前检查它)(抽象类型)数据。我可以看到存储它的两种变体。
检查数据类型并移至特定类型表。具有许多特定类型并不适合抽象。
或将所有内容存储为变体。
会有很多数据,我担心将布尔类型的数据保存到sql_variant会导致过多的内存浪费。是这样吗?
这种情况还有其他解决办法吗?
答案 0 :(得分:1)
很难从你的问题中确定正确答案。
您期望使用哪些数据类型以及您要对这些类型执行哪些操作?
因为,如果您要为每种类型创建多个表,那么最终会使用sql_variant类型来增加磁盘的复杂性和大小。 请记住,当使用sql_variant表示布尔值时,将只表示1字节的开销(用于存储数据类型种类)+可变长度字节(您可能已经在表中)。 但是,如果您使用的是某种复杂的关键任务逻辑,如果您的数据访问框架不支持sql_variant,则不应使用sql_variant。