This project is to produce a database architecture recommendation for a componant of a web based application.
Assume that the requester is an application developer with a good understanding of relational database from having developed applications against Oracle and Sybase - but is not an database architect.
You can use traditional database design tools or your own drafting / documenting resources - but keep in mind that the requester is NOT an database architect and is NOT generally familiar with database diagramming conventions - so allow time for explaining any diagrams post delivery.
The deliverable should discuss several architecture options, listing pros and cons with regard to scalability, maintainability and performance for each option. It should also recommend one particular option, and explain the decision.
The target application will allow the client to design their own data collection forms (as a componant of a larger product) like existing online survey and form-builder products (think <[url removed, login to view]> or <[url removed, login to view]> )
Once the client has designed and published the form, the application will serve many copies of the form. (Think widgets.)
The collected data needs to be query-able from the main serving / hosting application.
I need a design that will scale reasonably well, while supporting ad-hoc reporting of the collected data by the client. I want you to recommend -
a) how to store the form specification (Assume client can specify multiple text fields, toggles buttons and radio buttons - each with associated labels and specify the ordering of presentation within the designed form)
b) how to store the collected data
c) how the collected data would be reported against
While assuming that:
d) multiple clients will be able to design multiple forms
e) must prevent access to one client's data by another client
All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased.
Assume that the implementation database will be MySql.