我知道在列中存储多个值。不是个好主意。
它违反了第一个正常形式---它表示没有多值属性。规范化期间......
我正在使用SQL Server 2005
我有一个表需要存储测量的下限和超限限制,将其视为最小和最大速度限制...只有问题只是hundread的2%我需要上限。我只会有下限数据。
我正在考虑将这两个值存储在一个列中(稀疏列在2008年引入,所以不适合我)
有办法......?不确定XML ..
答案 0 :(得分:2)
你必须为此存储疯狂的行数。 1TB磁盘的价格现在是60美元!
两个浮点数占用8个字节; XML字符串将使用其中的多个来存储一个浮点数。因此,即使XML只存储一列而不是两列,它仍然会占用更多空间。
只需使用可以为空的列。
答案 1 :(得分:2)
要回答您的问题,您可以将其存储为具有您知道如何解析的特定格式的字符串(例如“low:high”)。
但是......这真的不是一个好主意。
处理98%的具有NULL值的行为上限是完全正常的恕我直言。保持清洁,以后你不会后悔。
答案 2 :(得分:1)
即便如此,我同意Andomar的看法。使用两个柱,下限和上限。如果任何一个值可能未知,请将这些列设为可为空。
或者,指定默认的任意最小值和最大值,并使用这些值而不是空值。 (这样做意味着你永远不必乱用三元逻辑,例如必须用ISNULL或COALESCE包装所有内容。)
定义架构后,可以使用一些技巧来减少存储空间(例如压缩和sparce列)。