I am working on a sports database.
I have table for persons(players), teams, leagues etc.
The problem is, how do I identify a person uniqely? I was thinking that a new person could be added by either league organizer, team, or the player themselves, by registering to the website with this database.
One player can play in multiple leagues. So when they are already in the database and a new league will want to add him again, there will be a duplicate.
The only solution I can think of is using the persons national ID, as there potentially could be two persons with the same name, birthplace, and birth date.
Another solution I can think of is alerting the user that there is already a person with the same or similar data. Then they can check if it is really new person or just a duplicate. However, this doesn't work well as the user could still add duplicates.
What are your opinions on this problem? Can you give me some advice?