在mssql中存储int列表的最佳选择

Ian*_*ugh 3 c# sql-server asp.net list

我想知道哪种方法是在sql列中存储整数列表的最佳方法......即"1,2,3,4,6,7"

编辑:这些值表示SQL表中的其他ID.这行看起来像

[1] [2]

id,listOfOtherIDs

到目前为止我研究的选择是:

  1. varchar的分离值,可以"爆炸",即逗号或制表符
  2. 包含所有值的XML
  3. 为每个值使用单独的行.

哪种方法最好用?

谢谢,伊恩

Jer*_*vel 5

记录的单个元素只能引用一个值; 这是一个基本的数据库设计原则.

您将不得不更改数据库的设计:为每个值使用一行.您可能想要了解规范化.

如所示在这里在的描述第一范式:

第一个普通形式表明,在那里的表中的每个行和列交叉处,存在单个值,而不是值列表.例如,您不能在名为Price的字段中放置多个Price.如果将行和列的每个交集视为一个单元格,则每个单元格只能包含一个值.