在关系数据库中,我可以有一个表Person和一个表Hobby.每个人都可以拥有零,一个或多个爱好,而且我还想记录每个人的爱好优先级.
我可以使用2个外键PersonFK和HobbyFK以及一个普通列Priority创建一个关系表.
在datomic中,为了建模一个简单的n:m关系(没有优先级),我可能会创建一个类型为Reference的属性,其基数为Many,我将其用于Person实体.
但是,我如何才能确定该关系是否可以存储优先级?它是否必须类似于关系情况,即通过为该关系创建一个新的实体类型?或者有更好的方法吗?使用一些元数据设施或什么?
解决方法
几天前在Datomic邮件列表上提出了类似的问题:
https://groups.google.com/d/topic/datomic/7uOl-TISdxA/discussion
总之,给出的答案是你是对的:你需要创建一个关系实体来存储额外的信息.