將平面數據轉換為層次結構樹
將表示樹層次結構的平面表有效地轉換為嵌套樹結構是一個常見的編程挑戰。 遞歸算法提供了一種優雅且有效的解決方案。
這是一個演示此方法的 Python 示例:
<code class="language-python"># Initialize the tree as a dictionary tree = {} # Process each row from the flat table for row in table: # Add the node to the tree tree[row['Id']] = { 'name': row['Name'], 'parent_id': row['ParentId'] if row['ParentId'] else None, 'children': [] # Initialize an empty list for children } # Populate the children for each node for node_id, node in tree.items(): if node['parent_id']: tree[node['parent_id']]['children'].append(node_id)</code>
此代碼創建一個嵌套字典。每個字典條目代表一個具有“name”、“parent_id”和“children”ID 列表的節點。這種結構有利於輕鬆遍歷樹。
優化關係數據庫中的樹存儲
雖然嵌套集和路徑枚舉是可行的選擇,但閉包表方法為在 RDBMS 中存儲分層數據提供了幾個好處:
總之,閉包表方法提供了一種健壯且高效的方法來管理和查詢關係數據庫中的樹結構。
以上是如何將表示樹層次結構的平面表有效解析為巢狀樹結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!