スポーツ器具をmysqlデータベースに保存しています。現在、私は約 20,000 のレコードを持っており、そのうち約 3000 が現在の備品 (今年) です。定期的にアクセス、読み取り、更新する必要がある現在のフィクスチャと、定期的にアクセスするだけでよい古いフィクスチャです。
したがって、私の計画は、現在のフィクスチャを 1 つのテーブルに配置し、現在のフィクスチャを別のテーブルに保持することです。
Fixtures_histroic フィクスチャ_現在
これは良い習慣ですか? 私の理論では、3,000 件しか結果が得られない場合、20,000 件のレコードをトロールする必要はありません。次に、新しいシーズンまたは年が始まると、現在のフィクスチャを履歴テーブルにコピーして、新しいカレントを開始できます。
次の質問は、両方のテーブルでデータを検索する方法です。単純な結合の方法は知っていますが、このクエリを検討してください。 と の両方をクエリするにはどうすればよいでしょうmatches_current
かmatches_histroic
。クエリはすでに結合であるため、結合の結合になります。かなりぐちゃぐちゃになりそうですよね?
SELECT `m`.*, `h`.`name` AS "homeTeam", `a`.`name` AS "awayTeam", `o`.*
FROM `matches_current` m
JOIN `teams` `h` ON `m`.`home_team_id`=`h`.`team_id`
JOIN `teams` `a` ON `m`.`away_team_id`=`a`.`team_id`
JOIN `outcomes` `o` ON `m`.`score_id`=`o`.`outcome_id`
WHERE `home_team_id`=1 AND `away_team_id`=2
AND `m`.`score_id`>0
ORDER BY `date` DESC
それで、私がしていることは正しいですか、それとも 20,000 レコードすべてを 1 つのテーブルに入れる必要がありますか?
前もって感謝します、
アラン。