リクエスト:合計いいね数を表示するカスタムバッジSQL

こんにちは!

ソフトウェアに付属しているデフォルトのバッジがあるのですが、それを少し調整したいと思っています。

元のバッジ:

100件の「いいね!」を受け取り、それ以上に「いいね!」を返したユーザーに付与されます。恩返しに感謝します!

希望するバッジ:

100件の「いいね!」を受け取り、それ以上に「いいね!」を返したユーザーに付与されます。

「与える」の部分は同じままでお願いします。しかし、フォーラムのゲーミフィケーションにおいて投稿数を完全に無視したいので、1つの投稿で100件の「いいね!」を受けたユーザーが、100件の異なる投稿でそれぞれ1件の「いいね!」を受けたユーザーと同じように、そのバッジの対象となるようにしたいのです。

これまでは、Enable Badge SQL を参考にしました。

  • SiteSetting.enable_badge_sql = true を有効にし、GUI経由で新しいバッジSQLをプッシュしてから、セキュリティ上の理由で SiteSetting.enable_badge_sql = false を無効にしました。カスタムバッジは問題なく動作しますが、データベース/SQLの知識がないまま野蛮なリスクを冒すことはできません。

現在のところフォーラムは小規模で、明らかな問題はありませんが、フォーラムが成長するにつれてパフォーマンスの問題に直面する可能性があります。もし時間があれば、そのカスタムバッジのSQLクエリを提供していただけますでしょうか。

よろしくお願いいたします!

こんにちは、ようこそ @rapphann さん :slight_smile:

私もSQLマスターではありません :slight_smile: ですが、おそらくこのようなものになると思います。

SELECT us.user_id, current_timestamp AS granted_at 
FROM user_stats AS us 
WHERE us.likes_received >= 100 
AND us.likes_given >= 100
AND (:backfill OR us.user_id IN (:user_ids))
「いいね!」 4

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.