-1

私はカーレースゲームを構築するための設計段階にあります。各ユーザーは最大100台の車を持つことができ、各車のデータは私の車のテーブルにあるレコード内に保存されます。テーブル内のフィールドは次のとおりです。

<car_id, user_id, top_speed, colour, handling, acceleration ...>

-user_idが車の所有者への外部キーマッピングである場合。

私の質問:このシンプルなデザインで、すべてのユーザーの車を1つのテーブルに保管しても大丈夫ですか?アプリが成功し、それぞれ100台の車を所有する約10,000人のユーザーがいるとします。それは私の車のテーブルに1,000,000レコードになります。パフォーマンスの問題ですか?データベースの設計を通じてパフォーマンスを向上させることはできますか?

最後に、MySQLをDBMSとして使用する予定です。

4

2 に答える 2

1

同じテーブルに保管してください。

代理キーの特定の理由がない限り、識別関係を作成します...

ここに画像の説明を入力

...そして、結果の自然キーでテーブルをクラスター化します。このように、同じユーザーに属する車はデータベース内で物理的に近くに保存され、「指定されたユーザーの車をください」などのクエリに非常に迅速に回答できます。car{user_id, car_no}


その上で、(M:N ではなく) 1:N の関係が実際に必要かどうかを検討してください。ユーザーが車 (または少なくとも車の「共通の側面」) を共有することはありますか?

于 2013-01-31T19:11:23.297 に答える
0

ユーザーごとに多くの車を検索する予定がある場合は、user_id にインデックスを追加します。それ以外に、この設計を最適化する明確な方法はありません。

于 2013-01-31T18:44:07.703 に答える