我们在EAV中使用sql_variant
数据类型作为值,但我认为最好为每个数据类型值使用一个表,因为sql_variant
是8000字节,我担心这种数据类型会带来巨大的值。
你的想法是什么?哪一种更好?
ThanX
我意识到这个问题很老了,但我想我无论如何都会回答它。
SQL_VARIANT
不是每行使用8000字节。它使用与"基本数据类型"相同的字节数+最多16个字节来存储条目的元数据。它适用于大多数EAV,并具有保留原始数据类型的额外优势。它也很快,尤其是在插入时,因为您不必转换为VARCHAR
。
真正的问题不在于是否在EAV中使用SQL_Variant
。。。真正的问题可能是您开始使用EAV的原因。;-)