あなたの一部のMySQLのエキスパートが私を助けてくれることを願っています。mysqlはネストされたセットツリー用の特別なデータを取得します
ツリーに隙間がある場合は、より深い子供が欲しいとは限りません。
例:
id | parent_id | lft | rgt | depth | title
:深さ3のノードは無効である。この場合
root (depth 0)
sub-cat 1 (depth 1)
subsub-cat 1 (depth 2)
subsubsubsub-cat 1 (depth 4)
、iはノードsubsubsubsub-CAT 1深い
構造を必要としません
デフォルトのクエリ:
select *
from categories
where lft >= '1' and lft < '10000'
order by lft asc
ありがとう!
ネストされたセットは、あなたが特別なもののため、全体のパスをチェックする必要はありませんので(それだけですべてのノードがかかりますが存在します2つの数字の間には、ギャップについてあまり気にしない)ので、(簡単に)可能ではありません。ノードを削除するときには、すべての子を削除してください(これは、標準のネストされたセットアルゴリズムで行われます)。何らかの理由でノードを保持したい場合は、別の隠しサブツリーに移動するか、列を追加してから、それらを削除せずに未使用/隠しとしてマークします。 – Solarflare
ありがとう、おそらくistできませんが、私はカテゴリを削除したくない、私は親カテゴリを無効にする場合、子供を非表示にしたい。 例: 衣類>メンズ>ジーンズ>スリム ジーンズが無効になっている場合は、スリムでツリーに表示しないでください。 – Tom
ノードが無効になっているかどうかはどのように判断できますか? – Strawberry