I have a table which looks something like this:
ID | NAME | HOMEID | HOMENAME | TEAMID | TEAMNAME | YEARJOINED
1 | PETE | SP | SPAIN | 1 | TEAM1 | 2018
2 | PAUL | FR | FRANCE | 1 | TEAM1 | 2018
3 | MARY | GR | GREECE | 2 | TEAM2 | 2019
1 | PETE | SP | SPAIN | 2 | TEAM2 | 2019
2 | PAUL | FR | FRANCE | 2 | TEAM2 | 2020
Each person can join a maximum of one team per year.
I have normalised the table down to (what I think is) the BCNF:
{ID, NAME}
{HOMEID, HOMENAME}
{TEAMID, TEAMNAME}
{ID, TEAMID, YEARJOINED}
{ID, HOMEID, TEAMID}
However, I'm really confused as to how to normalise this so that there are no repeated value in the primary key for the last two tables. As far as I can work out, the way YEARJOINED is dependent on ID and TEAMID, tables will always have repeated values?
What I have tried:
I've tried splitting the tables into TEAM1 and TEAM2, i.e.:
TEAM1{ID, TEAMID, YEARJOINED}
TEAM2{ID, TEAMID, YEARJOINED}
given that each person is only able to join one team per year. However, this makes it difficult to do the SQL queries on the tables later!