🎄
【改造版】NotionDBの親子関係をツリー構造で見える化する
をやっております熊倉です
この記事はPC・タブレット閲覧推奨です
2022/3/12 現在からすると約1年前ですが、参考元記事を見た当時すげーとビックリしましたが、なんて検索すれば見つけられるんだっけ。。と見つけられずにいました。
必要に駆られて検索してみたら、ようやく見つけて、あらためていじってみたら問題があった事に気づいたので、改善してみた次第です
投稿後ご本人様からリツイート頂いてしまった・・!是非みなさまフォローを・・!
参考元
- ツリー構造
参考元で実現出来てる事
親子リレーション、関数、ロールアップを使ってツリー構造を実現。スッゲー!
元のTreeの問題点
- 最上層である親を増やすと、自動並び順が担保できなくなる
- 以下のように並んでしまう
- 親A
- 親B
- 子A-1
- 子B-1
- 子A-2
つらいorz............
改善してみた
そこで親に対して自動連番を振り、関数も改造することで、問題を解消
- ‣ modified
- 親だけに連番降らなくても動きますので、フィルターで適応させておくと意識しなくて済む事に後で気づいたので更新しておきます
完成物
改善方法
1. 連番機能を実装する
- = を足す
- を追加し、リレーションを張る
- 親にあたるページを連番IDマスタに登録する
- に以下を追加する
- のをロールアップしオリジナルを表示する
- =
- からロールアップできるように、aで作ったロールアップを文字列化する
- =
- に以下を追加
- からをロールアップ
2. ツリーDBを改造する
- _tree_07( 同階層に対する並び番号を算出
- _tree_09 ( 並び替えをするための数値を算出
おまけ
元のツリー構造の分析をしたDB
まだ、中途半端な分析だけれど雑メモ
雑メモ
リレーションは自分に親子(01と02)で張る
- _tree_03(自分は最後子供か
- 子や孫の最後に当たるかを確認
- ┗ を出すか
- tree_03は, 孫1Bが08のケツにある場合チェックがつく
- tree_04(親の罫線を取得
- 親リレーションのtree_5をロールアップ
- tree_05(親と自分の罫線を足す
- tree_04 +
- 親リレーションがない
- 何も足さない
- 親リレーションがある
- 自分が最後の子供でない場合はを追加
- 違う場合 を足す
- 再帰構造っぽい
- _tree_06(親の並びを取得

- tree_07( 同階層の並び番号
- ex
- tree_08 = 孫1A,孫1B
- タイトル = 孫1B
- 孫1A,
- 1
- _tree_08(親の子供 文字列

- _tree_09(並び替え用
- 親のtree_09(並び替え用プロパティ)を参照し,
- 並び替え用プロパティ
- ツリー
- 自分が親なら自分のタイトルだけ
- 子供なら
- と
- に値が
- あったら、
- 子供の最後
- なければ、 を足す
- 子供の途中
- 最後にタイトルを足す
‣ modified
- 親子含む全てに連番振ってもまぁ動くよなという感じでフィルターを加えた
おまけその2 〜更なる可能性
時間がなかなか取れないので、どなたか実現頂ければと(なぬ