C# 在sql中,存储多个有序向量/列表的最佳方式是什么?

C# 在sql中,存储多个有序向量/列表的最佳方式是什么?,c#,sql,list,sql-server-2012,C#,Sql,List,Sql Server 2012,我有几个不同长度的整数列表,我想保留它们的顺序。 我将使用它们作为彼此的替代品,而不是同时使用两个。 列表的数量将来可能会增加,尽管我预计它永远不会达到50个左右的值。我可能希望在此列表中插入一个值。这些列表相对很少修改,因此使用手动编辑器(如MSSQLServerManagementStudio)就可以了。我现在看到的是,这些列表很少直接用于查询,中间会有一些C 对于存储一个有序列表,链接(或双链接)列表似乎是合适的。但是,如果我必须存储多个有序列表,在我看来,我必须为每个列表添加一个表。如果

我有几个不同长度的整数列表,我想保留它们的顺序。 我将使用它们作为彼此的替代品,而不是同时使用两个。 列表的数量将来可能会增加,尽管我预计它永远不会达到50个左右的值。我可能希望在此列表中插入一个值。这些列表相对很少修改,因此使用手动编辑器(如MSSQLServerManagementStudio)就可以了。我现在看到的是,这些列表很少直接用于查询,中间会有一些C

对于存储一个有序列表,链接(或双链接)列表似乎是合适的。但是,如果我必须存储多个有序列表,在我看来,我必须为每个列表添加一个表。如果使用索引列表,同样有效。另一方面,我还可以将所有这些列表存储在一个表中,将它们转换为字符串(每个列表一个字符串),值以逗号分隔,然后在我的C#程序中解析


在sql中,在sql中存储多个有序向量/列表的最佳方式是什么?

像sql Server这样的关系数据库通常没有“数组”或“列表”-如果需要存储多个值-它们有相应的表。不,对于像SQL Server这样的数据库来说,即使有数千张表也不会很麻烦-如果您真的必须的话。。。。。毕竟,处理表是关系数据库的核心能力。。。它应该很擅长!(SQL Server是——许多其他成熟的RDBMS系统也是如此)

我强烈建议不要使用逗号分隔的字符串,这些字符串首先违反了数据库设计的第一个标准形式,一旦您需要将这些值与其他值连接起来,您就有麻烦了。不要这样做-绝对没有必要这样做,将来某个时候你只会让你的开发者生活很痛苦-如果你有机会避免的话-不要这样做

这是一种吗

ListId   ItemOrder ItemValue
1        1         10
1        4         7
1        2         5
2        1         55
1        7         23
2        4         15

Select ItemValue FROM [Table] WHERE ListId = 1 Order By ItemOrder

在这里,每个列表都有一个ID(您可以在这里使用聚集索引),顺序由字段ItemOrder给出。我将使用两个表-列出“标题”和元素,其中包含标题ID和指向下一个元素的链接(或序列号-取决于您的列表使用和检索场景)。我倾向于同意您的看法。然而,我看到的一个问题是表显然不能按层次结构组织。在我的数据库视图中,我会将“信息”表与向量表混合在一起,它们看起来都很相似。例如,我可以在名称中添加一个“zz_2;”前缀,将它们放在我的表列表的末尾,但这似乎不是一个干净的方法。@Antonio关于这些表,有什么不是“有用的”?存储信息是他们的事情。@Martijn让我们这样说:如果可以,我自然会把它们都放在一个文件夹中subfolder@Antonio如果只是一个“层次结构”级别,那么你可以考虑使用不同的模式来将这些表与其他表分开。我很想知道这样的选择会有多受欢迎,让我们看看……)我一直都在使用这样的列表——比有很多匿名表更紧凑、更自然。