<この記事は「Money Forward Advent Calendar 2015」の8日目の記事です> みなさんSQL書いてますか? 今回は、RDBでSQLを使って階層構造データをうまく扱う(ことに挑戦しようとする)方法に関するお話です。 数年前に出た「SQLアンチパターン」という本に書かれている内容で、大勢の方の記事でも取り上げられている話なのでだいぶ今更感が強いですが、私自身の忘備録としてまとめました。 というのも、実は私はこの記事の後半に書いた内容を使ってとあるシステムを設計していたのですが、諸事情あって結局そのシステムは日の目を見ずにお蔵入りになり、そのための供養を兼ねていたりもします。 身近な例で言えば、ファイルシステムのディレクトリ構造がまさに階層構造になっていますね。 このような階層の概念は、いろいろなところで出てくるもので、なんらかのシステムを作る際には大なり小なり関わっ
![階層構造データへの挑戦 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/21f4ec694f9881702632d87f8960a948e6ba4318/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-7940cd1c8db80a7ec40711d90f43539e.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU5JTlBJThFJUU1JUIxJUE0JUU2JUE3JThCJUU5JTgwJUEwJUUzJTgzJTg3JUUzJTgzJUJDJUUzJTgyJUJGJUUzJTgxJUI4JUUzJTgxJUFFJUU2JThDJTkxJUU2JTg4JUE2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMzQTNDM0MmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz1hYjk2N2Y0MjUwZmJkNmJlMTgyZjAwMDE1YzM1ZjdkYw%26mark-x%3D120%26mark-y%3D96%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9OTcyJnR4dD0lNDB1Y2hpbmFtaV9zaG9pY2hpJnR4dC1jb2xvcj0lMjMzQTNDM0MmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lNGU2NmY1YTViOTU0ZjZlNDE2MWFmMDQ1OGRlNGNkZA%26blend-x%3D120%26blend-y%3D500%26blend-mode%3Dnormal%26s%3D65ece324629b9e3c8da902f8637f9559)