記事に対するコメントを保存する cms があります。これらのコメントは、スレッド化されていてもスレッド化されていなくてもかまいません。技術的には同じですが、スレッド化されていない場合は返信欄が空欄になっているだけです。私のアプリケーションは sqlLite、MySQL、および pgsql で動作するため、かなり標準的な SQL が必要です。
私は現在コメントテーブルを持っています
comment_id
article_id
user_id
comment
timestamp
thread (this is the reply column)
私の質問は、データベース内のスレッド化されたコメントを最もよく表す方法を見つけ出すことです。おそらく、コンテンツなしでツリー セットをサポートする別のテーブルと、テキストを保持する単純なテーブルでしょうか? おそらく、それはすでにある方法ですか?おそらく別の方法ですか?
コメントがスレッド化されていない場合は、タイムスタンプで簡単に並べ替えることができます。
それらがスレッド化されている場合、私はこのようにソートします
ORDER BY SUBSTRING(c.thread, 1, (LENGTH(c.thread) - 1))
ORDER BY からわかるように、関数ベースのインデックスは実際には Oracle にしか存在しないため、コメント クエリはインデックスを使用しません。コメントページを高速化するのを手伝ってください。