どうも、佐藤鉄平(@teppeis)です。
オライリーから今年初めに刊行されたSQLアンチパターンがとても良い!という話になり、社内勉強会がスタートしました。
本の内容自体が面白いこともさることながら、「うちのあの製品ではどうなってるの?」「でも昔は違ったよね?」のような社内勉強会ならではのディープでいきいきとした議論が自然と盛り上がります(まさにパタン・ランゲージ!)。
そんなことをつぶやいたところ、監訳者の@t_wadaさんこと和田卓人さんから「一度お邪魔したいです!」とのうれしいリプライがあり、このたびスペシャルゲストとして参加していただきました。
今回のテーマは第2章「ナイーブツリー(素朴な木)」。サイボウズはグループウェアを扱っているので、組織やフォルダなど多数のツリー構造が存在します。 過去には隣接リスト(ナイーブツリー)、Nested Set、Nested Interval、Materialized Pathなどいろいろなツリーモデルを採用した経験(失敗含む)があったので、
- MySQLのカスケード操作は15階層を越えるとエラーになる。
- Nested SetはテーブルをSELECTしただけじゃ構造が読めないので運用的に厳しい場合がある。
- Nested Intervalで分割を繰り返したら精度が足りなくなった。
などなど、和田さんの経験談も交えながら議論が盛り上がりました。
今後も毎週1章ずつ進めていきたいと思います。 和田さん、ありがとうございました!