我想知道哪种方法是在 sql 列中存储整数列表的最佳方法。.....即“1,2,3,4,6,7”
编辑:这些值代表 SQL 表中的其他 ID。该行看起来像
[1] [2]
id, listOfOtherIDs
到目前为止,我研究过的选择是:
- 具有“可爆炸性”的分隔值的 varchar,即通过逗号或制表符
- 一个单独包含所有值的 XML
- 为每个值使用单独的行。
哪种方法是最好的方法?
谢谢,伊恩
我想知道哪种方法是在 sql 列中存储整数列表的最佳方法。.....即“1,2,3,4,6,7”
编辑:这些值代表 SQL 表中的其他 ID。该行看起来像
[1] [2]
id, listOfOtherIDs
到目前为止,我研究过的选择是:
哪种方法是最好的方法?
谢谢,伊恩
虽然 Jeroen 的答案对“多值”属性有效,但在某些情况下,多个逗号分隔的值实际上可能代表一个大值。路径数据(在地图上)、整数序列、素数列表等内容都可以存储在逗号分隔的 varchar 中。我认为最好解释一下您到底存储了什么以及您需要如何检索和使用该值。
编辑:
查看您的编辑,如果您的 ID 是指另一个表的 PK,那么这听起来像是该表与您正在存储其 ID 的表之间的真正 MN 关系。这些东西真的应该存储在一个单独的动名词中,顺便说一句,这是一个表,其中每个表的 PK 作为 FK,从而链接两个表的相关行。所以 Jeroen 的回答非常适合你的情况。