Normalizing is not always the best approach. If the database has not yet been designed, perhaps reconsider. I still don't really understand what you are trying to do but 5 small tables might not be necessary.
I would suggest getting some code working with 2 tables an then go from there. Some options: http://web2py.com/book/default/chapter/07#One-form-for-multiple-tables http://web2py.com/book/default/chapter/07#Multiple-forms-per-page Another approach would to use FORM or SQLFORM.factory and then coding the database updates. You lose some of the Web2py features but it might still be the easiest way to do it. But my first suggestion would be to try and simplify what you are intending to do.