I am developing a new J2EE web application using struts. It is a fairly simple website, but I expect that the site will expand often. One of the issues that I am dealing with when designing the new environment is making sure that the overall architecture is effective. I have been reading Pro Jakarta Struts by John Carnell which provides many good ideas about how to proceed, but I am still unclear about a few things.
The major obstacle that I am trying to figure out is what Value Objects (or Data Transfer Objects to create. Is it common to have a one-to-one relationship between your VO/DTO classes and your database tables? For instance, the database has a users table, courses table and groups table. Would it be appropriate to have a UserDTO, CourseDTO and GroupDTO? Should I be considering other areas of the application other than the database when constructing the VO/DTO's?