我正在尝试对list
可以有多个items
且每个item
可以属于多个lists
的架构进行建模。我很清楚,我可以使用:list/items
ref类型来建模关系,但我还想要一个rank
属性来确定项目在每个列表中的位置。怎么可能做这样的事情?
答案 0 :(得分:1)
我唯一的答案 - 假设定位是依赖于列表的 - 是你需要添加一个具有rank属性的间接实体。这不是很愉快。如果可以订购许多关系会很好,因为这个用例会大大简化。
答案 1 :(得分:1)
Heterogenous tuples(于2019年6月添加)是此处的新建模选项。
属性值,即v
5元组中的eavto
现在本身可以是元组。这是最大长度为8的clojure向量。
blog post官方公告。
在twitter上讨论发行版本。
请注意上面文档中使用的示例
:db/tupleTypes [:db.type/long :db.type/long]
这有点奇怪,因为要指出的是 hetero 通用元组,所以对于OP来说,应该是:
{:db/ident :list/item
:db/valueType :db.type/tuple
:db/tupleTypes [:db.type/ref :db.type/long] ; ref to item, rank
:db/cardinality :db.cardinality/many}
或者,如果适合您,则可以使用值类型代替项目的引用。