1

各 Q&A ページに stackoverflow のようなコメント スレッドを作成したいと考えています。私が見ている問題は、サブスクライバー (質問者、回答者、コメント者) に新しいコメントを通知して、それぞれがコメントを既読としてマークできるようにする方法です。

2 つの一般的な解決策があります。

  1. サブスクライバーごとに行を作成し、これらの行のすべてに実際のコメントを複製します。これにより、各サブスクライバーの各行のフィールドでコメントを既読としてマークできます (ページ上部の小さな赤い円からコメントを削除します)。
  2. コメントごとに1行しかありません。サブスクライバーは 1 つのフィールドにまとめられ、各サブスクライバーがコメントを既読としてマークしているかどうかを SELECT および UPDATE するための複雑なクエリが必要になります。

多分もっと良い方法がありますか?

これは、2番目のアプローチを示す一般的なスキーマであり、回答に参照するものを含めることができます。

Comments table

comment_id user_id question_id     comment       comment_read
1            1          1        good stuff      yes=user_id=1, no=user_id=2, no=user_id=3
2            2          1        bad stuff       yes=user_id=1, yes=user_id=2, no=user_id=3
3            3          1        worse stuff     yes=user_id=1, yes=user_id=2, yes=user_id=3
4            4          2        good question   ...
5            1          2        bad question    ...
4

1 に答える 1