Rails中的Forced Binary Matrix公司结构实现

Jan*_*nko 5 ruby algorithm postgresql binary-tree ruby-on-rails

我正在开发一个Rails项目,该项目使用二进制矩阵计划模式对公司的结构进行建模.每个新用户都"放置"在层次结构中,如下所示:

用户插入算法

没有平衡,所有级别必须在移动到下一个级别之前填充.插入新手时只有插入顺序才有意义.我们的数据库系统是Postgres.

我打算使用一些gem来帮助我实现树实现(Closure Tree是一个坚定的候选者)但是我不确定如何从左到右接近这个'强制二叉树的约束(插入,删除)'模型.

我试图弄清楚这一切,但由于我从未参与过这样的实现(特别是涉及数据库),我想我可以使用更多有经验的程序员的帮助来解决常见的陷阱,或者我应该在哪里特别注意.预计用户群会快速增长,因此我担心性能问题.

所以我的问题:

  • 由于我被困在关系数据库中,对这个模式进行建模的最佳方法是什么?
  • 有没有我可以深入研究的文档或宝石,以学习实现我需要的所有算法的最佳方法?

提前感谢任何提示/指示.

son*_*gyy 0

我正在考虑这样的方式:

  1. 每棵树都有一个ID;
  2. 每个节点都有一个ID;
  3. 创建名为 的表nodes,其中字段为:tree_id, parent_node_id, value,id

然后你可以用一个查询重建这棵树。要更新树,只需更新具有树对应的树 ID 的所有节点..?我认为组织不会有太多员工来限制绩效。