サイト上の投稿をユーザーが好きか嫌いかに基づいて、ユーザー間の相関値を決定するサイトを構築しています。そのために、多くの具体化されたビュー (他のテーブルの変更時に SQL トリガーで更新されたテーブル) を使用してデータベースをセットアップしています。
更新したいテーブルの 1 つは、ユーザーが提供したレート (投稿に対する好き嫌い) を格納するテーブルに基づいて、ユーザー間の関係に関する情報を格納するテーブルです。
rates
表には、、、および (ユーザーが投稿を気に入った場合は 1、ユーザーが投稿を気に入らなかった場合は -1) という列がuser_id
ありpost_id
ますliked
。
ユーザーとユーザーの相関関係の表には、、、、、および の列を含める予定user_id_a
です。は同じと評価された投稿の数、 は反対に評価された投稿の数、 は両方が評価された投稿の総数です。user_id_b
agreed
disagreed
total
agreed
disagreed
total
rates
行が追加されたときに次のようになるように、テーブルにトリガーを設定したいと考えています。
- まだ存在していなかったすべての必要なユーザー-ユーザー相関行をユーザー-ユーザー相関テーブルに追加します
- ユーザーとユーザーの相関テーブルの関連するすべての行で、、、および列を
agreed
更新disageed
します。total
編集:私の質問は、箇条書きにリストされているクエリをどのように書くかです。トリガーの書き方は知っていますが、この場合、トリガーの内部にクエリを作成する方法がわかりません。
rates
行が更新または削除されたときの同様のトリガーも作成する必要があります。
私はMySQLデータベースで作業しています。