将任意键/值条目存储在一个数据组实体中
假设我有要存储在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?