3

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

如果除了已知属性之外,实体还可以有任意数量的任意键,映射到任意值。当然,我可以将该列表存储在一些我也添加到架构中的“blob”属性中,但是我不能轻易地查询这些属性。

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

这让我可以查询。这是要走的路还是有更好的方法?

4

1 回答 1

3

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

于 2014-05-10T22:54:22.590 回答