これを実現するには、複数の方法があります。
DB 内のセッションは一方向です。ただし、これを使用して、サイトに何人の匿名ユーザーがいるかを知ることもできます.
探しているタスクを達成する別の方法は、「logged_in」などと呼ばれる新しいフィールドでユーザー テーブルのユーザーにフラグを設定することです。
login メソッドが実行されると、logout メソッドと同様に、それに応じてフラグが変更されます。次に、ユーザーがログインを試みるたびに SELECT クエリを実行して、現在ログインしている人数を確認し、それに応じて行動します。
より良い方法は、実行された「ログイン」または「ログアウト」メソッドに応じて、ログインしているユーザーの合計数を DB にカウントし、加算および減算することです。この方法では、どの特定のユーザーが特定の時点でログインしているかを知ることはできませんが、少なくとも必要な全体数は把握できます。ユーザー テーブル全体に対して SELECT クエリを実行する必要がないため、この方法の方が優れています。代わりに、DB から特定の 1 つのフィールドの値を取得して、パフォーマンスを向上させることができます。残念ながら、ユーザーが毎回ログアウトしない場合、ログイン時間を保存し、一定時間後にログアウトしない限り、この方法は役に立ちません。
ユーザーがブラウザーを閉じて「ログアウト」しない可能性があるという問題を解決するには、上記で提案した DB 構造を組み合わせてセッションを保存することをお勧めします。