Here's one way to do it:
In your table that contains all of the stats, there should be a player ID column that is a primary key.
Then you could have another table where the columns are
year, gk, d1, etc...
Each row is a different year and then the player IDs of the players that were selected for each position.
Let's look at an example:
playerID, name, statCol1, statCol2, etc...
1, Adam Acosta, ...
2, Freddy Adu, ...
3, Nelson Akwari, ..
4, Chris Albright, ...
And so on...
Now, if we put these into a hypothetical "best team" row for 2006, that table would look like:
year, gk, d1, d2, etc
2006, 2, 4, 1, 3, ...
This would mean that Adu is gk, Albright is d1, Acosta is d2, etc.
Hope this helps.