【发布时间】:2014-08-27 10:01:41
【问题描述】:
现在我有以下表架构:
Node_Id (INT)| NodeName (nvarchar(40)) | ParentNode(int, FK)
我想从该结构中检索分层树:结构类似于此结构:{NodeId, NodeName, IEnumerable<Node> Children, bool hasChildren}
我看到这个问题的两个解决方案:第一个是树遍历。我的意思是加载根节点(其中 parent=null),然后为每个节点加载它的子节点并递归地为这些节点执行此操作。但是每个子负载都会导致对 DB 的额外查询,这会影响性能。
我看到的另一个选项是从数据库加载平面结构(与表模式相同),然后从中构建层次结构。这会对应用服务器造成性能影响。
我想知道是否有其他解决方案?
【问题讨论】: