Originally Posted by
ArviLaanemets
tblRivals: RivalID, TeamName;
tblPlayers: PlayerID, FirstName, LastName, DOB, ...;
tblRoles: RoleID, Role (goalkeeper, forward, etc);
tblPlayerRoles: PRID, PlayerID, RoleID, ValidFrom;
tblGames: GameID, CameDate, GameField, RivalID;
tblGamePlayers, GPID, GameID, PlayerID, PlayerNo, RoleID, InMinute, OutMinute, ... (Player may have a role in team, but it is possible for specific game to have different role. Team role can be used as default role.);
tblGameGoals: GGID, GameID, GoalSide, PlayerID, GoalTime (GoalSide: 1 - our team, 2 - rivals team, PlayerID: rivals goal - 0 [unless you have in tblPlayers players of all teams], own team - PlayerID);
tblGameCards: GCID: GameID, CardSide, Card, PlayerID, CardTime (Card: 1 - green, 2 - red, other fields like in tblGameGoals)
... you can have separate tables for other game events, like penalties, corners, etc..