独自の認証方法を使用して、有効なユーザーであるかどうか、およびアプリケーションに適合するかどうかを判断できる軽量で迅速なフォーラムを見つけるのに苦労していたため、Web アプリに統合するための非常に単純なフォーラムを作成しました。テーマ。ユーザーは、返信が通知されるようにスレッドをサブスクライブする機能を求めています。これを行う最善の方法は何ですか?
スレッド サブスクリプション テーブルを作成し、誰かがサブスクライブするたびに新しい行を入力することもできます。これには、投稿と返信のたびにビジー スレッドの検索が多数必要になる可能性がありますが、新しいサブスクリプションでは、1 つの単純な挿入だけでかなり迅速に処理できます。
私が考えたもう1つのオプションは、スレッドごとに行を持ち、サブスクライブしたすべてのユーザーIDを含むスレッドごとに配列を追加(または読み取り)できるフィールドを持つことでした。これは、データベース呼び出しが少ないため (つまり、新しい返信が行われた場合、すべてのユーザー ID を取得するために必要なデータベース呼び出しは 1 つだけです)、読み取りは速くなりますが、新しいサブスクライバーが追加されたときの挿入は遅くなる可能性があると思いますスレッドの行を見つける必要があるため、既存の配列を取得してから、ユーザー ID を既存の配列に追加します。
2 番目のオプションと非常によく似た最後のオプションは、各行がユーザー ID であるユーザー サブスクリプション テーブルを持ち、サブスクライブされたスレッドの配列を持つことです。
どちらが最善の方法でしょうか? 現時点で私の唯一の要件は、新しい投稿と返信についてユーザーにメールを送信することですが、将来的には、多くの主流のフォーラムのように、ユーザーが購読済みのスレッドなどをリストできるように拡張したいと思うかもしれません.