Hi Callum welcome to the forums!
Setting up teams and players is quite straightforward…
1. a Channel for Team data
- each team can then have as many custom fields as you need to hold info such as name, badge, description, location etc
2. a Channel for player data/profile
- each player can have as many custom field to hold relevent player data, such as name, age, position, squad number, photo
What you can then do is use EE “related entries” to associate players to a team. What you can then do is use “Reverse related entries” on a team page to list all it’s players.
You could, if you wish also some Category groups for things like what position a player plays - this might be useful if you want to list all “goalkeepers” irrespective of which club they play for.
Match reports are a little more complicated…
You’ll probably need a new Channel for match reports, then add some custom fields for the report itsself, eg:
Title
Story
Home team (related entry from the Teams channel)
Away team (related entry from the Teams channel)
Home team score
Away team score
Home team players (use the Matrix/Playa addons to select multiple players and input data)
Away team players (use the Matrix/Playa addons to select multiple players and input data)
The harder bit is trying to account for player stats per game. You may be able to accomplish this with the Matrix and Playa addons, this would allow you to select a player then add goals scored etc or whatever data fields you want. That would take care of match stats, you should then be able to display a players match stats on their profile page by pulling in the match data.
Hope that helps!