您是否为包含子节点的多个父节点的分层数据建模扩展了嵌套集?你有什么经历?

Sri*_*ddi 5 database-design nested-sets

我希望在我即将开展的项目中使用这个概念.

更多信息:在MySQL中管理分层数据.

请通过示例分享您的经历好坏.

我正在添加更多信息以使其更广泛:

我有可以拥有多个父项的子项(例如:用户可以属于city,还有一个名为UserDefinedRegion的组),这是典型的层次模型不支持的,无论是邻接列表还是嵌套集.

为清楚起见,我在这里粘贴用例:


背景:目前系统具有固定的层次结构,即State-> County-> City-> User

  1. 销售经理登录系统并创建一个新组,该组可以与城市或县处于同一级别.

  2. 销售经理登录系统并创建一个新组,该组可以位于州和县或县和市之间.

  3. 销售经理创建组后,他应该能够在他的仪表板中查看第二天​​汇总的所有必要报告.


如您所见,第二点可以通过嵌套集轻松完成,但不是第一点,它将为同一子节点引入新的父节点.

到目前为止,stackOverflow用户提出了以下解决方案:

  1. 网络数据库支持的网络节点结构.
  2. 有向无环图.

我肯定在寻找一个RDBMS解决方案.在现实生活中看起来没有多少人在层次数据模型中遇到过多个父节点.

naw*_*oth 3

由于您可能会使用存储过程来执行某些操作,因此请确保它们确实能够满足您的需求!根据我的经验,如果您使用 MySQL,这可能是一个问题。

关于新要求(多个父级):在使用 RDBMS 时,您现在会遇到更多问题,具体取决于您需要对数据运行哪种查询。我在此 wiki 页面上将RDBMS 方法与使用图形数据库进行了比较。如果您只对 RDBMS 方法感兴趣,请查看在 SQL 数据库上表示有向无环图 (DAG) 的模型