我需要在我的数据库中设计一个键/值表,我正在寻找有关最佳方法的指导。基本上,我需要能够将值与一组动态的命名属性相关联,并将它们应用于外部键。
我需要能够支持的操作是:
- 将键/值对应用于一组项目
- 枚举所有当前活动的键
- 确定具有给定键值的所有项目
- 确定与给定键关联的值与某些条件匹配的所有项目。
似乎最简单的方法是定义一个表:
CREATE TABLE KeyValue (
id int,
Key varchar...,
Value varchar...
);
看来我可能会在 Key 列中复制大量数据,因为我可能会为大量文档定义任何给定的键。用整数查找替换 Key varchar 到另一个表中似乎可以缓解这个问题(并使枚举所有活动键的效率显着提高),但让我遇到了维护该查找表的问题(只要我想就插入它)定义一个属性并可能在任何时候清除键/值时删除条目)。
最好的方法是什么?