如何用原子表示数据透视表(上面有额外的数据?)>

问题描述 投票:0回答:1

[我意识到我们不需要datomic中的普通数据透视表,因为我们可以只选择关系的一侧并在其中放置:db.cardinality/many属性(确保对关系in one direction only建模)。

我从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

但是以上内容似乎有些错误。这样做意味着在数据日志中连接将不再是隐式的,这似乎是一种损失。想知道是否有更好的选择。

我意识到我们不需要原子表中的普通数据透视表,因为我们可以选择关系的一侧并在其中放一个:db.cardinality / many属性(一定要对...建模)。

自2019年7月引入元组以来,元组是更简洁的方法。

请参阅this question的答案。

[Datomic的2019年7月更新]一次包含了许多不同的功能,尽管文档确实对此进行了解释,但用法尚未在网上得到充分记录。请注意,特别是heterogeneous

元组在这里解决了问题,在此用例中,忽略其他类型的元组。
clojure datomic datalog
1个回答
0
投票

自2019年7月引入元组以来,元组是更简洁的方法。

© www.soinside.com 2019 - 2024. All rights reserved.