The way I deal with this is competitions, participants and registrations. The participant must register for the Competition by creating a registration. Registration will consist of a competition identifier, a participant identifier, a flag indicating whether a fee has been paid or not, and any other data related to registration (for example, registration date). This will be modeled in the database as a “connection table” (with additional data). On the application side, the Participant will have a list of Registrations, each Registration will have an associated Participant and a Competition. Similarly, each Competition will have a list of Registrations.
source share