Donc ce que je vois ici est un peu contradictoire car les manches ne sont pas vraiment directement un attribut de jeux, sauf indirectement. Mais c'est peut-être juste moi. Personnellement, je suggérerais quelque chose de plus comme une table RunsScored et je le ferais revenir à une table GamesHeader, en quelque sorte, alors pensez à:
CREATE TABLE GamesHeader (
GameID INT IDENTITY(1,1),
HomeTeamID INT, --FK to teams table, naturally
AwayTeamID INT, --FK to teams table, naturally
FinalInningsCount BYTE, -- for faster reporting after the game is over
FinalHomeScore BYTE, -- for faster reporting after the game is over
FinalAwayScore BYTE, -- for faster reporting after the game is over
--Other attribs
)
CREATE TABLE RunsScored (
RunsScoredID BIGINT IDENTITY(1,1), -- for faster reverse traversal, possibly. May not be needed, this depends on your setup, as the normalization will show a composite key anyways
PlayerID INT, --FK to players table naturally
GameID INT, --FK to GamesHeader table naturally
Inning BYTE, --wait for the payoff
RunsEarned, --because you may want to track this by the player ... really the problem is that there's not a single naturalized setup for this, so you may be intersecting this table to another stats table elsewhere. idk, it depends on your model. I'm going for fairly simplistic atm. Wanted to demonstrate something else entirely, but this needs to be accounted for.
-- other attribs
)
SELECT MAX(r.Inning) FROM RunsScored r JOIN GamesHeader g ON g.GameID = r.GameID WHERE GameID = 'x'
Cela vous donnera le maximum de manche joué pour un jeu particulier, et vous pouvez affiner davantage par PlayerID -> TeamID pour trouver plus de détails si vous le souhaitez. Je ne sais pas trop ce que cela pourrait être.
J'affinerais probablement cette deuxième table pour qu'elle ne soit pas RunsScored mais quelque chose sur AtBat parce que c'est vraiment ce que vous suivez. Je voulais juste montrer comment vous pouvez dénormaliser la manche hors de la table de jeu. Je modifierais mon modèle pour qu'il coule comme ça, si c'était mon projet. HTH. YMMV.
Notez également que je suis un gars TSQL, mais je pense que les concepts exprimés ci-dessous fonctionnent assez bien pour expliquer mon concept. La sémantique des langues ne s'alignera probablement pas.