将任意键/值条目存储在一个数据组实体中

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

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

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

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


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

链接地址: http://www.djcxy.com/p/65263.html

上一篇: Storing arbitrary key/value entries alongside a datomic entity

下一篇: What's the more idiomatic option in Datomic land for this schema?