如何在数据中表示数据透视表(上面有额外的数据)



我意识到,在dataomic中,我们不需要普通的透视表,因为我们只需选择关系的一侧,并在其上放置:db.cardinality/many属性(确保仅在一个方向上对关系建模(。

在从sql转换时,我遇到的下一件事是一个透视表,它还存储关系的一个属性,比如:

series_subscriptions
user_id    int
series_id  int
expires_at timestamp

我想知道在数据模型中有什么选择。我注意到模式中有一些东西我还不了解原因,或者不了解适当的用法,比如复合元组、组件。

不过,一种选择是将枢轴提升到自己的实体,这样它就可以处理额外的属性:

:series-subscription/user       ; ref, one
:series-subscription/series     ; ref, one
:series-subscription/timestamp  ; timestamp, one

但以上似乎有点不对。这样做意味着在数据日志中,联接将不再是隐式的,这似乎是一种损失。不知道是否有更好的选择。

自2019年7月推出以来,异构元组是实现这一目标的更简洁的方法。

请参阅此问题的答案。

2019年7月对Datomic的更新同时包含了许多不同的功能,尽管文档确实对其进行了解释(不需要太多解释——这是一个简单但可能并不容易的例子(,但使用情况尚未在网上得到很好的记录。请注意,特别是异构元组解决了这里的问题,忽略其他类型的元组可以开始使用此用例。

最新更新