■No59207 (ちか さん) に返信
> テーブル
> 商品コード 商品名 使用商品
> 111 AAA 222
> 111 AAA 444
> 111 AAA 555
> 222 BBB 333
> 333 CCC
> 444 DDD 333
> 444 DDD 666
> 555 EEE
> 666 FFF
このテーブルの構造を変えることは可能でしょうか?
今のテーブルでは、親がその親に属する子の情報を持っている状態です。
子が複数の親に属することがあるような場合は上記のようなテーブルになるかと思いますが、
子が単一の親にしか属さないのであれば、子の商品の情報として
親の商品コードを持つようにするとシンプルな実装が可能になります。
上記のテーブルの場合、上から順にデータを見ていくとしたら、
(1)1行目の商品コード111を見る
(2)全行の使用商品に111がないか確認する
(3)
(a)なければ、111は最上位のノードなので、ノードを作ってTreeViewに直接追加
(b)あれば、111は最上位のノードではないので、使用商品に111を持っている商品コードXのノードの作成を試みる。
Xに対しても(2)の作業を行う。
:以下省略
のように全データを行き来しながらツリーを構成していくことになります。