我们正在构建一个文档存储解决方案,对于每个文档,我们需要存储大量额外的元数据以符合当地法规,范围从标题或描述等基本数据到相关事件的日期或处置和分类规则。
我见过不同类型的解决方案,但没有一个能说服我:
- 添加新的元数据槽时表在列中增长(因此它们的列与与文档关联的元数据一样多)
- 具有大量备用通用列的表。与 1 非常相似,但表不会增长(权限较少)
- 文档 ID、元数据键和元数据值的表。
- 3. 中包含元数据定义和元数据键的表被元数据 ID 替换。我们过去使用过这个解决方案。这些表最后有数百万行。
- 文档表或关联表中的文本字段,用于存储 XML 或其他结构化信息以及键值对中的所有元数据。
我偏向于数字 5,提供并行全文索引(Lucene.Net?其他?)以通过相关元数据进行搜索(并非所有内容都必须是“可搜索的”)。
有什么建议吗?类似的经历?