PHP/MySQL でファンタジー ベッティング リーグ アプリケーションを作成している最中で、次の 2 つのテーブルがあります。
実績- 現在、プレイヤーの歴代実績を次の列で保持しています。
user_id
total_gold_medals
total_silver_medals
total_bronze_medals
total_bets
total_winnings
ベット- 各ユーザーが行った個々のベットのリストで、そのベットがメダルを授与された場合、および受け取った場合の賞金の額が表示されます。
date_placed
user_id
winnings
gold_medal
silver_medal
bronze_medal
achievements
現在、予測はライブ イベントに基づいているため、結果が時々変わる可能性があるため、 2 週間が経過するまでテーブルをインクリメントしたくありません。
bets
現在、同様のデータに対して 2 つのテーブルを用意している理由は、現在の週にそのデータベースのごく一部しか必要としない場合に、増え続けるテーブルからクエリを実行して COUNT/SUM を実行したくないためです。
95% の時間はachievements
テーブル内のデータのみを使用するため、最初に考えたのは、2 週間が経過した後にデータを から に移動し、それらのベットを新しいフィールドで「アーカイブ済み」としてマークして、bets
そうしないようにすることでした。 t はそれ以降の SUM() に含まれます。ただし、データを 2 つの場所に保持するこの方法は、非常に不器用な方法のように思えます。別のテーブル構造にする必要がありますか? これについてどう思いますか?achievements
archived