在数据组实体旁存储任意键/值条目

时间:2014-04-25 00:52:20

标签: datomic

假设我有想要存储在datomic中的实体。如果这些属性都是事先知道的,我只需将它们添加到我的数据模式中,然后再使用它们。

如果除了已知属性之外,实体可以具有任意数量的任意键,映射到任意值。当然,我可以将该列表存储在一些“blob”属性中,我也将其添加到模式中,但后来我无法轻松查询这些属性。

我提出的解决方案是在datomic中定义keyvalue属性,每个属性类型为string,并处理其中每个附加键/使用上述属性将条目值作为实体的值。然后我可以使用ref类型通过1:n关系将所有这些键/值实体连接到实际实体。

这允许我查询。这是要走的路还是有更好的方法?

1 个答案:

答案 0 :(得分:3)

我不愿意失去属性定义的力量。可以随时添加Datomic属性,并且限制相当高(2 ^ 20),因此在动态键和值出现时对其进行建模可能是合理的,为每个创建一个新属性。