ユーザーが特定の目標またはタスクを完了するとバッジを獲得する Web サイトを実装しています。
バッジにもレベル/色があります。たとえば、ユーザーはレベル 0 のブロンズ バッジから始めて、レベル 1 のブロンズ バッジを取得し、さらに数レベル後にレベル 0 のシルバー バッジを取得します。
私はデータベースを構築していましたが、バッジをユーザーに接続する方法がわかりませんでした。
私が思いついたアイデアは、ユーザー用に 1 つのテーブル、バッジ用に 1 つのテーブル、および UserID を BadgeID に接続する 3 番目のテーブルを作成することでした。
ここでの私の関心は最適化です。サイトに参加してバッジを獲得するユーザーが増えると、テーブルへのアクセスとレコードの検索が遅くなるのではないでしょうか?
そして、Java でシングルトンを使用してサーバー上でスクリプトを定期的に実行し、ユーザーの状態をルールに照らしてチェックして、上限の目標を満たすバッジをアップグレードする方法についてここで読みました。この方法は本当にスケーラブルですか? または、代わりにこの投稿をフォローする必要がありますか?
ティア