次のようなテーブルがあります (Oracle 11.2.0.2.0):
ParentID ID AllowsEntry
NULL A188 N
A188 1881 Y
NULL A189 N
A189 1891 Y
1891 189A Y
ビジネス ルールでは、リーフ レベル以外の要素にデータ エントリを含めることができますが、データベースにクエリを実行して次のような出力を生成する必要がないかのようにレポートする必要があります。
ParentID ID
NULL A188
A188 1881
NULL A189
A189 1891_
1891_ 189A
したがって、基本的には、リーフ レベルへのデータ エントリを許可する中間ブランチをプッシュ ダウンする必要があります。新しいリーフは、名前が変更されたブランチにロールアップする必要があります。
Old Tree New Tree
A188 A188 -- remains the same, no data entry at this level
1881 1881 -- remains the same, data entry allowed at leaf
A189 A189 -- remains the same, no data entry at this level
1891 1891_ -- this is the level that is wrong
189A 1891 -- 1891 is push down into a new 1891_ level
189A -- and rolls up into the new level.
189B -- etc.
助けてくれてありがとう