我将运动器材存储在 mysql 数据库中。目前我大约有 20,000 条记录,其中大约 3000 条是当前的固定装置(今年)。我需要定期访问、阅读和更新当前的灯具,我只需要定期访问旧的灯具。
所以我的计划是将当前的图片放在一张桌子上,然后将当前的灯具放在另一张桌子上:
固定装置_历史固定装置_当前
这是一个好的做法吗,我的理论是,当只有 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 条记录放在一个表中?
先感谢您,
艾伦。