【发布时间】:2017-11-28 21:58:10
【问题描述】:
我已经阅读了 Rails 指南并尝试了一些使用 Active Record 的不同方法,但无法弄清楚最好的方法是什么。
我需要建立一个分层的自我参照(用户到用户)关系。它通常不会超过 5 级高,但应该能够无限放大。
我尝试使用如下 DB 架构创建 UserHierarchy 模型:
parent | child | level
但是,管理这个有点太难了,太复杂了。
Rails 中建立自引用层次关系的最佳方式是什么?我已经检查过像祖先这样的宝石,但它们中的大多数都使用类继承,并且不适用于自引用关系。这是一个多对多、自引用的层次结构(在 MySQL 中)。
【问题讨论】:
-
您尝试实施的业务用例是什么?一个级别的用户与另一级别的用户有什么关系?
-
我不确定我是否理解关卡的必要性;用户有嵌套用户。水平是关系的内在因素。如果你在网上搜索自我参照关系,你应该会找到你需要的一切。
标签: ruby-on-rails activerecord