Hi, Noman is unavailable today so I will be taking over this ticket. I hope that's okay with you.
For my teams should I name them like Football 2000, Football 2001, and then just type in the year into my custom year field i've created and select the sport?
This sounds fine to me. Keep in mind that the post title may be shown on a single post page, as well as any WordPress Archives, for Teams. So a descriptive Team name is a good idea.
How can I allow players to be part of multiple teams?
So in other words Players can be on multiple teams, and teams can include multiple players, right? This requires something we refer to as a many-to-many relationship. In order to accomplish this, you must create a 3rd custom post type to use as an intermediary between players and teams (and positions, as described below).
More information about many-to-many relationships here:
https://toolset.com/documentation/toolset-training-course/part-9-many-to-many-relationships-in-toolset/
How can I add the team members position in with their team. For example "Defensive Tackle"?
This can be handled several different ways, and depends on several factors.
Option 1 - use a custom field. All the options must be predefined in wp-admin. If you go this route, you must determine where the custom field should be set. If a player can be on many teams, then can they also play multiple positions? Can they hold multiple positions on the same team? If yes to either of these, then it's probably not best to put this custom field in the Player post type. It's probably better to include it on the intermediary post type, which is unique to each Player / Team / Position combination.
Option 2 - Create a custom post type for positions, and use a many-to-many relationship to associate Players, Teams, and Positions. This is probably the most flexible approach, but is also the most complex and can be a challenge to search and filter effectively. With custom post types, you get the benefit of WordPress Archives and single post pages already baked in for each position, each team, each player, etc. Positions will have their own editing screen like the Post editor in wp-admin. I recommend trying this approach on a very small scale to see how it all fits together.
Option 3 - Taxonomy. This is a good general option if you don't need the full features of a custom post type for each position. Again, try this approach on a very small scale to see how it works and how you can structure custom searches using this taxonomy.