【发布时间】:2011-01-19 20:08:17
【问题描述】:
我有一个包含 25 列的表,其中 20 列对于某些 (30-40%) 行可以有空值。 现在拥有 20 个空列的行的成本是多少?这样可以吗?
或者
用另一个表来存储这 20 列并向第一个表添加 ref 是一个好的设计吗? 这样我只会在有值时才写入第二个表。
我使用的是 SQL Server 2005。将来会迁移到 2008。
只有20列是varchar、rest smallint、smalldate
我存储的内容: 这些列存储其所属行的不同属性。这些属性有时可以为空。
该表将容纳〜十亿行
请发表评论。
【问题讨论】:
-
您使用的是哪个数据库服务器? SQL Server 2008 支持稀疏列的概念,它以最小的影响支持您的方案。
-
你考虑过表继承吗?
-
只是一个旁注:如果您的表不是那么大(比如说
标签: sql database-design