Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在单个列中存储可变数量数据的好方法_Sql Server_Data Structures - Fatal编程技术网

Sql server 在单个列中存储可变数量数据的好方法

Sql server 在单个列中存储可变数量数据的好方法,sql-server,data-structures,Sql Server,Data Structures,我需要找到一种相对健壮的方法,将变量类型数据存储在数据库表的一列中。数据可以表示单个值或多个值,也可以是长字符列表中的任意一个(太长,无法轻松枚举)。我想知道在这个过程中哪些方法可能有效。我曾想过添加某种形式的分隔符,但我担心任何简单的分隔符或组合都可能在数据中自然出现。我还希望避免使用XML或代码片段,因为事实上数据可能是XML。可以说我可以对XML进行编码,但这似乎仍然很脆弱 我意识到这自然有点像一个意见问题,但我缺乏使之成为社区的魔力 编辑澄清: 问题背景:该列将保存数据,然后用于根据另一

我需要找到一种相对健壮的方法,将变量类型数据存储在数据库表的一列中。数据可以表示单个值或多个值,也可以是长字符列表中的任意一个(太长,无法轻松枚举)。我想知道在这个过程中哪些方法可能有效。我曾想过添加某种形式的分隔符,但我担心任何简单的分隔符或组合都可能在数据中自然出现。我还希望避免使用XML或代码片段,因为事实上数据可能是XML。可以说我可以对XML进行编码,但这似乎仍然很脆弱

我意识到这自然有点像一个意见问题,但我缺乏使之成为社区的魔力

编辑澄清:

问题背景:该列将保存数据,然后用于根据另一列进行评估。从功能上讲,它是决策引擎的测试标准。其他列包含评估的性质和要测试的值的来源。数据不需要进行搜索。

没有“好”的方法可以做到这一点。SQL中存在数据类型是有原因的

我能想到的唯一使其接近的方法是使您的列成为一个查找列,它引用另一个表中的GUID或ID,该表本身具有额外的列,指示哪些表和行包含您的数据。

没有“好”的方法来做到这一点。SQL中存在数据类型是有原因的


我能想到的唯一使其关闭的方法是使您的列成为一个查找列,它引用另一个表中的GUID或ID,该表本身具有其他列,指示哪些表和行包含您的数据。

是否需要搜索数据?如果没有,则将其放入
varbinary(MAX)
中,并有一个字段来帮助反序列化

不过,顺便说一句;使用正确的XMLAPI,在XML节点中存储XML应该不会有问题


但我想一定有更好的方法来做到这一点。。。似乎。。。啊

数据是否需要可搜索?如果没有,则将其放入
varbinary(MAX)
中,并有一个字段来帮助反序列化

不过,顺便说一句;使用正确的XMLAPI,在XML节点中存储XML应该不会有问题


但我想一定有更好的方法来做到这一点。。。似乎。。。啊

JSON格式,虽然我同意djacobson的观点,但你的问题就像在问用茶匙把2x4切成两半的最佳方式


编辑:数据在JSON字符串中的存储顺序不相关;每个数据都存储为键值对

JSON格式,虽然我同意djacobson的观点,但你的问题就像在问用茶匙把2x4切成两半的最佳方式


编辑:数据在JSON字符串中的存储顺序不相关;每个数据都存储为键值对

由于我怀疑对这个问题的许多回答可能是“为什么要以这种方式存储数据?”的形式,因此您可能需要详细说明您实际使用它的目的。在其他条件相同的情况下,我们大多数人可能会避免在数据库列中存储任意数据结构。因为我怀疑对这个问题的许多回答可能是“为什么要以这种方式存储数据?”的形式,所以您可能需要详细说明您实际使用它的目的。在其他条件相同的情况下,我们大多数人可能会避免在数据库列中存储任意数据结构?数据必须保存在某个地方,并以某种方式检索。@OldTroll:您的澄清中的关键短语是“数据不需要可搜索”,但您的意思可能不是您所说的。您是否需要能够寻址并(以编程方式)提取这些数据的各个部分,以提供给某个算法?还是“仅限人眼”,即一段结构松散的文本,供人阅读?您可以使用JSON来构造数据(它将作为字符串存储在数据库中),大多数编程语言都可以在运行时将JSON转换为真正的编程对象?数据必须保存在某个地方,并以某种方式检索。@OldTroll:您的澄清中的关键短语是“数据不需要可搜索”,但您的意思可能不是您所说的。您是否需要能够寻址并(以编程方式)提取这些数据的各个部分,以提供给某个算法?还是“仅限人眼”,即一段结构松散的文本,供人阅读?您可以使用JSON来构造数据(它将作为字符串存储在数据库中),大多数编程语言可以在运行时将JSON转换为真正的编程对象。