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

本文关键字:列表 向量 最佳 是什么 方法 几个 sql 存储 | 更新日期: 2023-09-27 18:11:39

我有几个不同长度的整数列表,我想保留它们的顺序。我将把它们作为彼此的替代,而不是同时使用。列表的数量将来可能会增长,尽管我希望它永远不会达到50左右的值。我可能想在这个列表中插入一个值。这些列表很少被修改,使用MS SQL Server Management Studio这样的手动编辑器就可以了。就我目前所能看到的,这些列表将很少用于直接进行查询,它们之间会有一些c#。

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

在sql中,在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

给出