どうも、シローです。 今回は閉包テーブルって何か、どういう時に使うかを伝えたいと思います。 閉包テーブルとは 閉包テーブルとは自己参照型のデータの参照部分を切り出したテーブルのことを言います。 具体的にはLINEのチャットでコメントに対するリプライの関係性を格納します。 ER図 コメントのデータ自体を管理するのがCommentsテーブルで コメントの祖先(ancestor)と子孫(descendant)を管理するのがTreePathsテーブルです。 TreePathsテーブルにはCommentsテーブルへの二つの外部キー(ancestor, descendant)を持っているのがポイントです。 ツリー構造を持つコメントデータの管理する場合 あるコメントに対してのリプライをできる機能を持つサービスで以下のようなツリー構造のコメントがあったとします。 これを閉包テーブルで表現すると。 Comm