many-to-many - datomic 中的限定关系

标签 many-to-many data-modeling datomic

在关系数据库中,我可以有一个表 Person和一张 table Hobby .每个人都可以拥有零、一个或多个爱好 ,而且我还想记录,比如说,每个人的那些爱好的优先级 .

我可以创建一个 关系表带有 2 个外键 PersonFKHobbyFK , 和一个普通列 Priority .

在 datomic 中,要建模一个简单的 n:m 关系(没有优先级),我可能会创建一个 Reference 类型的属性有基数 Many ,我将用于 Person实体。

但是我将如何限定该关系以能够存储优先级?它是否必须类似于关系案例来完成,即为该关系创建一个新的实体类型?或者有什么更好的办法?使用一些元数据工具或什么?

最佳答案

前几天在 Datomic 邮件列表上问了一个类似的问题:

https://groups.google.com/d/topic/datomic/7uOl-TISdxA/discussion

总之,那里给出的答案是你是对的:你需要创建一个关系实体来存储额外的信息。

关于many-to-many - datomic 中的限定关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12444214/

相关文章:

mysql - 在为本地位置创建 mysql 表时,最好的主键是什么?

database-design - 您应该如何对随时间变化的对象进行建模

clojure - 数据查询性能改进

clojure - 在 Datomic 中查找具有特定属性的最旧和最新实体的日期?

mysql - yii2 添加 '0=1' 以查询多对多关系

.net - Linq To Sql 多对多连接表

node.js - sails.js 多对多查询

python - Django 如何使用 ManyRelatedManager

sql - PostgreSQL - 如何确保 ID 不存在于其他表中?

clojure - 如何在 Clojure 中转换对象键和值