データベースに関する質問です。
例えば、じゃんけんを複数のユーザが定期的に行うサイトがあったとします。データベースにはユーザ情報とイベント情報があり、イベント情報にはeventID,userID1,userID2,winUserのような形で、どの二人が戦いどちらが勝ったかという情報を入れているとします。そのサイトでは、常に自分が何勝したかとか、今までに勝った数が多い人ランキング等を表示するとします。その際、Totalの勝ち数をユーザ情報のテーブルに入れておくべきなのか、それとも毎回イベント情報のテーブルから、そのユーザの勝ち数の合計を計算するべきなのかということで悩んでいます。ユーザ情報に勝ち数を入れておいたほうがすぐに計算できてよい気もしますが、いまいちどう設計するのが普通(設計の考え方)であるのかということがわかりません。皆さんだったらどうするかということでもよいのでアドバイスをいただけると助かります。
みんなの回答 4 件
最近ひたすらこのテの質問してるの同一人物でしょ。全仕様をここで質問して決める気かよ。こういう判断を自分でできないのならハナから引き受けるな。
トランザクションでユーザー情報の更新とイベントの追加を一度に行う。
ユーザーの累計勝利数だけを表示するだけならまだしも、勝利順にソートするようだと速度的にも負荷的にも相当しんどい。
毎回勝ち数を計算するのは無駄。ユーザー情報のテーブルに入れたほうがいい。
勝ち数と近々の戦績はテーブルに格納して、必要なタイミングで正しい戦績かどうかチェックする
関連するトピックス