if team rosters (the players on a team) can change from game to game, then the following will need some adjustment
Code:
Teams
TeamNo PK
Players
PlayerNo PK
TeamNo FK to Teams
Fixtures
FixtureNo PK
FixtureDate
HomeTeam FK to Teams
AwayTeam FK to Teams
HomeTeamScore
AwayTeamScore
FixtureGoals
FixtureGoalNo arbitrary PK
FixtureNo FK to Fixtures
GoalScorer FK to Players
if FixtureGoalNo key values can be assigned incrementally, you won't need a timestamp column in the FixtureGoals table
you don't actually need to store HomeTeamScore and AwayTeamScore in Fixtures (as they can be derived from the child rows in FixtureGoals) but many people do this for convenience, since the data isn't going to change and since not all reports need to know the individual goal scorers but likely do need the final score of the game
and, no, before someone else jumps in and tries to claim this, 3NF is
not violated by storing HomeTeamScore and AwayTeamScore
