我的要求是:
- 需要能够动态添加任何数据类型的用户定义字段
- 需要能够快速查询 UDF
- 需要能够根据数据类型对 UDF 进行计算
- 需要能够根据数据类型对 UDF 进行排序
其他信息:
- 我主要在寻找性能
- 有几百万条主记录可以附加 UDF 数据
- 当我上次检查时,我们当前的数据库中有超过 5000 万条 UDF 记录
- 大多数时候,UDF 只附加到几千条主记录,而不是全部
- UDF 不连接或用作键。它们只是用于查询或报告的数据
选项:
使用 StringValue1、StringValue2... IntValue1、IntValue2...等创建一个大表。我讨厌这个想法,但如果有人能告诉我它比其他想法更好以及为什么会考虑它。
创建一个动态表,根据需要添加一个新列。我也不喜欢这个想法,因为我觉得性能会很慢,除非你索引每一列。
创建一个包含 UDFName、UDFDataType 和 Value 的表。添加新的 UDF 时,生成一个视图,该视图仅提取该数据并将其解析为指定的任何类型。不符合解析条件的项目返回 NULL。
创建多个 UDF 表,每种数据类型一个。所以我们会有用于 UDFStrings、UDFDates 等的表。可能会做与 #2 相同的操作,并在添加新字段时自动生成视图
XML 数据类型?我以前没有使用过这些,但已经看到它们被提及。不确定他们是否会给我想要的结果,尤其是在性能方面。
还有什么?