情報の半複雑な検索を必要とする単純なテーブルがあります。表は次のとおりです。
表-投稿
id - bigint(20)
title - varchar(250)
content - longtext
parent_id - int(20)
type - varchar(50)
現在、postsテーブルに入るタイプには、グループ、ディスカッション、返信の3つの異なる値があります。データは次のように保存されます。
- 返信には、parent_idとしてディスカッションIDがあります。
- ディスカッションには、parent_idとしてグループID(または0)があります。
サイトのメンバーはグループに参加できます。そのグループからのディスカッションと返信をメールダイジェストに含めたいと思います。現在、これを実現するためにLEFT JOINSを使用していますが、これを実現するには多くの結合が必要であり、テーブルが急速に大きくなるにつれてパフォーマンスが低下するため、重くなります。
より良い実装のための提案はありますか?入れ子集合モデルを調べましたが、取得は最上位のグループエントリに対するアクションに基づいているため、ここでは役に立たないと思います。したがって、取得されるデータはそれに関連付ける必要があります。
考えと反応は大歓迎です。