从数据库树中的任何位置最佳地获取祖先关系id

时间:2016-08-27 23:29:52

标签: ruby-on-rails postgresql

我有一个带有PostgreSQL的Rails应用程序,其中用户角色基于分配的项目。

Project下面有一个分层的表格树。

我想知道是否有一种从树中的任何位置获取project_id的最佳方法。

到目前为止,我的方法是:

  1. 在每个第二个节点上添加(追逐)project_id列,并始终在模型中添加belongs_to :project, through:...选项,以便我始终可以通过直接调用project.id来找到它宾语。 - 似乎不是最合理的选择,因为大多数数据与project无直接关系

  2. 使用JOIN并从树的每个级别手动连接表以查找project_id - 非常脏的方法,因为我必须手动将树的每个级别映射到父{{1} }}

  3. 有没有更好的方法来做到这一点?由于这与权限有关,因此这些查询非常频繁,所以它们必须足够快......

0 个答案:

没有答案