我有一个带有PostgreSQL的Rails应用程序,其中用户角色基于分配的项目。
Project
下面有一个分层的表格树。
我想知道是否有一种从树中的任何位置获取project_id
的最佳方法。
到目前为止,我的方法是:
在每个第二个节点上添加(追逐)project_id
列,并始终在模型中添加belongs_to :project, through:...
选项,以便我始终可以通过直接调用project.id
来找到它宾语。 - 似乎不是最合理的选择,因为大多数数据与project
无直接关系
使用JOIN
并从树的每个级别手动连接表以查找project_id
- 非常脏的方法,因为我必须手动将树的每个级别映射到父{{1} }}
有没有更好的方法来做到这一点?由于这与权限有关,因此这些查询非常频繁,所以它们必须足够快......