我希望在SQL数据库表(SQLServer 2005)中存储一个整数值数组,如果可能的话,使用单个列。
整数数组的长度为7560。
我使用的是objectdatasource,数据类型应该与tableadapter生成的参数兼容。
感谢您的帮助:)。
答案 0 :(得分:16)
您至少有两个选择:
如果要对数据库进行规范化,则应采用第二种方法。
答案 1 :(得分:5)
做得对:1NF规定没有重复值。建议的7560元素数组中的每个元素都属于自己的行。
通过将每个元素放在自己的行中,您可以让RDBMS有机会做其他事情无法做到的事情,例如:计算集合上的统计数据,验证每个元素是否符合域规则,计算两个集合之间的差异, count / select集共享某些特征。
我将以数百万行(可能超过5000万行)结束。我不确定数据库是否可以在没有性能问题的情况下处理它。
这并不是特别多,而且大多数时候你不需要处理所有5000万。自己计算搜索二叉树以查找十亿分之一的记录需要多少次访问。答案可能会让你大吃一惊。
答案 2 :(得分:0)
仅在必要时才能使用!您可以轻松创建另一个包含返回表的外键的表和一个int列。
如果您坚持将其作为列保留在SQL Server中,则必须使用IMAGE列类型或VARBINARY(MAX),因为数据长度超过8K。这会将每个int存储为4字节的二进制值。
什么是ObjectDataSource?
答案 3 :(得分:0)
如果数据与任何其他表格不相关(例如,您希望以某种方式处理的值),我会将其存储在逗号分隔值中,如果它们是(例如,帐单中的产品),您应该创建另一个带有外键的表。
Greatings