グループを含むデータベースがあり、各グループには他のグループなどを含めることができます。データベースの構造は次のようになります。
Group[Id,Name]
GroupGroups[Id,ParentGroup,ChildGroup]
親にグループを追加する前に、そのグループがすでに上位レベルにあるかどうかを確認したいと思います。最善のアプローチは何でしょうか?各コンテキストの各ノードのすべての祖先を含むキャッシュを用意するか、ツリーを構築してルートに移動し、追加された要素がまだ存在しないかどうかを確認することを考えることができます。