The Post Types are:
=> League
=> Season
=> League+Season
=> League+Season+Team
=> Player
=> Team
Those are all single unique post types.
Then you connect those in these relationships:
1) One to Many Where Season (parent ) and League (child)
2) One to Many Where League+Season (parent) and League (child)
3) One to Many Where League+Season (parent) and Season (child)
4) One to Many Where League+Season (parent) and Team (child)
5) Many to Many where League+Season+Team and Player
6) One to Many where League+Season+Team (parent) and League+Season (child)
7) One to Many where League+Season+Team (parent) and Team (child)
Note that parent here refers to the "One end" of the relationship, and child to the end where you can have many posts.
In case 5. where a Many to Many is created, there is no strict parent and child, as many posts can be related to many other posts.
Note, in sports websites, there is one big issue that you need to pay attention to, and I can explain it best by simplifying the quite customized example (tailored for that case) that Minesh provided.
In any structure where the same relationship can repeat (friends, school classes, players in teams, and so on), Toolset currently faces a restriction. You cannot connect the same post of one Post Type to another Post Type's post, more than once.
Even if the Many To Many Relationship actually allows to create a so-called "Intermediary Post Type", which is unique for each relationship, it will not allow you to connect the same posts more than once.
That means, with a simple Many to Many Relationship you can have many players in many teams, but you cannot have them more than once in each team. That is not how reality works. A player may go and come from teams quite often, actually.
To solve this, a logical step must be done: analyse what really happens. What really happens is that we have Players, Teams and "The time when the player is in the team". Also, we could call that an "Appearance".
So to set up successfully such relational content, you'd need to create a 3rd post type for the Appearance.
Now you can create a Connection between the Player and the Team by creating a New Appearance.
This post will be connected to one player and one team only. If the player leaves and joins again, a new Appearance is created, connected to the same player and team as before.
Hence this is a One To Many relationships between (One)Player and (Many)Appearances, and on the other site, a second relationship also One To Many where (One)Team will be connected to (Many)Appearances.
League and Teams will be the same relationship kind if it needs to be possible adding the same team many times to the same league.
I have helped build another user a website for Handball sports, also featuring teams, championships and players, medals, and more.
It took some time (around 3 months) with the help of support to achieve most of the goals with Toolset. Unfortunately, those tickets are in German, they will not help you directly here.
I can, however, be of assistance.
Note that some custom code was required to complete the project (mainly to show victories and medals etc).
I am not sure if you also will work with seasons winner data and related prices that you need to record.
I'd start with a Player and Team Post Type, together with the appearance post type and create the relationships mentioned.
Then, I can show you how you'd display those. Later, we can bring in other data such as season and others.
I'd recommend setting this up on a clean Testing site, where you later when done can grab the content you created (structures, not posts) and import them to the live site with the Module Manager for example, or even reuse it otherwise at your will.
Please let me know if you need help at any step and once you are ready with the content types, I can show how to display those.
I'll set up a private reply in case you can add login details to mentioned test site where we could work together on the task.