我在设计rethinkdb表/文档时感到困惑.我何时创建单独的表,何时将其存储在同一文档中.应该尽可能避免加入,还是应该广泛使用它们.将数据存储在单独的表中与将其存储在父文档中有什么好处.
这取决于.
应该围绕数据的外观构建数据库..join不一定要避免.在许多情况下,.join将提高数据库的性能.
这里有一些事情需要考虑:
.join,你应该这样做..join.changes(尚未支持).您采取的决定取决于您是否以及如何使用更改源.以下是一些场景以及如何解决这些问题:
如果表A与B具有一对多,并且您不会经常创建/更新任何一个,那么最好将所有内容写入一个文档.
如果表A对B有一对多,并且您不会创建/更新很多As,但是您将创建/更新很多B,最好将它们存储在两个不同的表中并使用.join.
如果表A与B具有一对多且B具有非常复杂的嵌套JSON结构,则最好将它们存储在不同的表中并使用.join,因为读取A会非常昂贵(除非您将读取Bs)在每一次)
如果表A与B具有一对多,并且您将广泛使用只有A上的数据的更改源,则最好将B保留在单独的表中.
如果表A与B具有一对多,并且您将广泛使用带有A和B上的数据的更改源,则您需要将所有数据保留在同一文档中.