rethinkdb:在子表上使用父索引

时间:2016-06-05 09:57:57

标签: indexing rethinkdb

我们说我有两张牌桌:CarWheelCar有很多Wheel个。 Car有一个索引字段:Owner

现在,如果我想要Wheel拥有的所有"Foo"更改Feed ,那么我似乎必须复制Owner字段在Wheel表上,然后每当父Car发生更改时,我都需要对子Wheel执行相同的更新 - 但这感觉就像是一个糟糕的解决方案。

我尝试在引用父代的Owner上添加Wheel索引函数:

r.table('Wheel').indexCreate("Owner", function(wheel) {
  return r.table('Car').get(wheel("CarID"))("Owner")
});

虽然这会返回"Index functions must be deterministic"

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

你是对的;你必须将Owner放到Wheel上,否则就把你的轮子放到Car表中的一个数组中(这可能更常见)。更改源不能包含跨多个表的谓词。