1

私はゲームアプリケーションを開発しており、どのユーザーがプレイしたゲームの所有者であるかを処理する正しい方法について議論しています。

位置情報のみを提供する匿名のゲストとして、または登録ユーザーとしてプレイできます。すべてのユーザーがデータベースに保存されます。ゲームを完了すると、スコアとともにデータベース エントリが追加されます。また、誰がゲームをプレイしたかを記録したいと考えています。

表は次のようになります。

USERS ( ID | ユーザー名 | パスワード | 国 ) GAMES ( ID | ユーザー ID | スコア )

今のところ、GAMES(user_id) に USERS(id) への参照を保存するだけですが、匿名ユーザーをどのように処理すればよいですか?

1 つの方法は、すべての匿名ユーザーを ID と場所だけで保存し、anonymous_id という名前の列を GAMES に追加することです。ただし、プレーヤーが登録されているかどうかに応じて、すべてのゲームで user_id または anonymous_id のいずれかを NULL にする必要があります。

もう 1 つの方法は、すべての匿名ユーザーを USER テーブルに追加し、user_name と password を null にできるようにすることです。

これを処理するより良い方法はありますか?

アドバイスをいただければ幸いです。

4

1 に答える 1

1

国を別の場所に保存する場合、匿名ユーザーごとに User テーブルにオカレンスを追加しません。匿名ユーザーごとに 2 つの行が挿入されるためです (ユーザーに 1 行、ゲームに 1 行)。

代わりにあなたが持つことができます

GAMES ( id | user_id | score | country_id) 

user_id と country_id は両方とも null 許容の外部キーになります。

登録ユーザーがゲームを終了すると、user_id を保存します。重複データのケースになるため、country_id を null のままにしておくことができます。匿名ユーザーがゲームを終了すると、スコアと country_id を Games に保存するだけです。

ゲームでフィルタリングすることで匿名ユーザーを識別することができますがuser_id is null、ユーザー別および国別のランキングを作成することもできます.

于 2013-04-18T11:04:29.437 に答える