I am attempting to build a balloting system for voting. This system is essentially for the community to vote for local businesses, artists, etc. and then in turn, I will compile the database information into a usable list. I have created UML diagrams of the database tables and the classes i will be using. I basically wanted some input on this subject to see what other people think I could do to simplify this process or see if I might be doing something wrong. I am using a PHP/MySQL environment to build this application. I am including my UML diagrams here. I want to plan this out properly so, I have not started writing the code yet. Thank you for any input you might have!
The Run Down
Categories can also be subcategories, based on the parent field. If the parent is 0, then the category is a top-level category. (example: Dining)
A Question belong to a Category, and they represent something to be answered. (example: Best Asian Restaurant)
Nominations are the write-ins for the questions and belong to a Question. Users must enter their own entry here, there will not be a list to choose from.(example: Roy's Asian Diner)
A Vote is a single vote attached to a Voter and a Nomination. This represents a single, individual vote by a voter.
A Voter is a user that must register(one time) with an email and a name. The Voter is attached their votes.
A Ballot draws all this together and includes a category,question,and nomination. Once committed, it places a +1 vote to the nomination based on the nomination id.
I will use a custom DatabaseAdapter class and a DatabaseConfig class to access and maintain the database.
Does all this seem like a correct and feasible way to go about writing this application? Thank you again for any input!