Defining the data model
Our app has three distinct entities:
- Contests
- Nominations
- Votes
Therefore, we will need three separate tables for them. The nominations will need to have mapping to the contests they are part of, and the votes are mappings of voters against nominations.
If we decide to restrict the voting to a panel, we will also need a table to list down the members of that panel, and the same applies to permissions for organizing. If we are to limit that, we need a list of approved organizers also stored as a table.