gpt4 book ai didi

sql - 在 Rails 中递归获取记录

转载 作者:数据小太阳 更新时间:2023-10-29 07:38:49 26 4
gpt4 key购买 nike

在我的应用程序中,可以通过执行以下操作找到员工的所有团队报告者

User.where(primary_reporter: "some unique code of a user")

其中主要报告者是需要获取其团队报告者的用户。

但是,我现在正在尝试递归地查找所述用户的报告者和他的团队成员的报告者,形成一个层次结构图。在那里找不到任何东西。

我的用户模型是这样的:

class User
has_many :reportees, lambda { |user| includes(:actor).where [" .
(users.status = 1)"] }, class_name: 'User', foreign_key:
'primary_reporter'
end

class Actor
has_one: user
end

我正在为数据库使用 postgres

最佳答案

如果你想在带有 rails 的 postgres 中实现分层实现,那么你可以在 postgres 中尝试 ltree 扩展,你也可以在其中使用索引(用于加快查询)。我们还有 ruby​​ gem,使用这个 gem 我们可以轻松地进行查询。

引用资料

Postgres: https://www.postgresql.org/docs/9.1/ltree.html

rails :https://github.com/cfabianski/ltree_hierarchy

关于sql - 在 Rails 中递归获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55963763/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com