Sql server 具有非固定列的SQL Server表设计
我需要你帮忙设计一张桌子 我有一些groups表,我们需要从包含列名和数据的xml文件中加载该组表中的数据 列名实际上是某些主列的索引,如Sql server 具有非固定列的SQL Server表设计,sql-server,tsql,Sql Server,Tsql,我需要你帮忙设计一张桌子 我有一些groups表,我们需要从包含列名和数据的xml文件中加载该组表中的数据 列名实际上是某些主列的索引,如activity\u col1、activity\u col2等,并且不是每次都固定的,有时同一个表文件可能包含1000列,有时还定义了10列值,有时还定义了最大限制,因此没有文件包含超过 每组2000列 因此,我需要设计一个表,这是最好的解决方案,这也是我需要做的列值聚合。这些文件包含最小级别的数据,我需要将这些数据存储在最小表中,然后这些最小数据需要在一小
activity\u col1
、activity\u col2
等,并且不是每次都固定的,有时同一个表文件可能包含1000列,有时还定义了10列值,有时还定义了最大限制,因此没有文件包含超过
每组2000列
因此,我需要设计一个表,这是最好的解决方案,这也是我需要做的列值聚合。这些文件包含最小级别的数据,我需要将这些数据存储在最小表中,然后这些最小数据需要在一小时、一天、一周和一个月内聚合
如果我在所有表中创建max列,但数据不会每次都出现在所有列中,那么这种设计似乎不好,因为大多数值都是空的
如果我在column\u name列中插入列名作为行,并在values列中针对每个列值插入值,那么聚合对我来说将是一项繁琐的任务
这将影响性能
请建议。一个选项是,但它的构建、查询和插入更加复杂,可读性非常低
您需要无模式设计,允许不限列数,
您最好的选择可能是使用解决方案。尽管EAV
相对于关系数据库的弱点也适用于NoSQL
替代方案
请看这里:
建议(作为优先事项):
NoSQL
,如果对您来说,什么样的DBMS
无关紧要,那么它是非常有用的
灵活快速,不是所有的报告作者都在那里
支持这种存储方式。数据库中有许多示例
NoSQL的实现。最受欢迎的一个
现在是MongoDB
XML
列的标准表
查询它们,您只希望以普通方式存储和检索它们
使用一些额外用法的文本EAV
相对于关系数据库的弱点也适用于NoSQL
替代方案
请看这里:
建议(作为优先事项):
NoSQL
,如果对您来说,什么样的DBMS
无关紧要,那么它是非常有用的
灵活快速,不是所有的报告作者都在那里
支持这种存储方式。数据库中有许多示例
NoSQL的实现。最受欢迎的一个
现在是MongoDB
XML
列的标准表
查询它们,您只希望以普通方式存储和检索它们
使用一些额外用法的文本我希望能对您有所帮助:)我不完全了解xml文件中有多少种类型的数据。这是一张大单子还是几张不同的单子?您需要每行的最低限额吗?或每段时间内每列的最大值?你们每小时有几排吗?你说“所有表中的最大列数”,但我以为你说的只是一个表。您还可以尝试在中获取帮助。在SQL Server中,您可以将xml数据存储为
nvarchar(max)
,并对其使用xquery-;)。我不完全理解xml文件中有多少种类型的数据。这是一张大单子还是几张不同的单子?您需要每行的最低限额吗?或每段时间内每列的最大值?你们每小时有几排吗?你说“所有表中的最大列数”,但我以为你说的只是一个表。您还可以尝试在中获取帮助。在SQL Server中,您可以将xml数据存储为nvarchar(max)
,并对其使用xquery-;)。我需要在microsoft sql server中仅使用sql查询进行设计。所以选择第一个选项。它是比SQL Server XML更好的选择。当涉及到数据处理和报告时,XML
数据类型的可访问性远远低于常规表和字段。我需要在microsoft sql server中仅使用sql查询来设计此数据类型。因此选择第一选项。它是比SQL Server XML更好的选择。在数据处理和报告方面,XML
数据类型的可访问性远远低于常规表和字段。