I have a pretty simple question, but it seems that there are controversies as to how to solve it in the best possible way.
Say I have a web app that makes online surveys. My challenge is that each of these surveys must be isolated from one another (their address book, responses, etc.) while allowing duplication, deletion, backups (of only one survey, not of the whole database).
I know that some apps, like LimeSurvey that has a good reputation for online surveys, create a new set of tables for each survey. This seems to go against everything I've always considered as best practice, but on the other end it seems to simplify many things: the duplication of databases, the de facto separation between databases, etc..
Still, I am not convinced that this is the way to go. What is your opinion? How would you do it?