Good thinking with the tables, but would this work in a multi-user environment? Remember, the backend (i.e. tables) is what users would have constant access to.
Also, in programming, there's such a thing called code-reuse which I'm sure you're familiar with. Your code wouldn't be easy to manage.