Hi Ralph, It depends on what sort of information you're capturing for each member type (students, professors, etc.). Assuming the two do not have much overlap, and going on just the information you provided, I might do the following:
Domain ----------------------- These classes handle things like save(), delete(), setFirstName(), getName(), getId(), etc. on the data itself. Student and Professor might have getClasses(). - Student - Professor - Class ($professors = array(), $students = array()*) - Organization * One class can have multiple professors. Also, instead of arrays, you may prefer to use containers to enforce type: ProfessorCollection, StudentCollection, etc. Controllers ----------------------- These classes have indexAction(), createAction(), updateAction(), viewAction(), saveAction(), deleteAction(), etc. Some people prefer these names to be plural. - StudentController - ProfessorController - ClassController - OrganizationController Some possible URLs: /professor Display all professors; routes to /professor/view /professo/view/23 Display a single professor (can use something other than numeric ID) /student/view/gender/female Display all female students /student/view/3452332 Display a single student For things like roll calls, I would have professors and organizations log in, then the relevant URLs would be: /organization/rollcall /class/rollcall/17393 Just some ideas. There are a several right ways to do it, and many, many wrong ways. ;-) -Matt > My Simple University Project: > > Members are: > Students > Professors > Classes > Organizations > > The important thing to know is that this project needs to accomplish 2 > things currently: > 1. data entry of all members > 2. creating reports: > * Organizational Roll Call > * Class Role Call > * All Professors > * All Students > * all male students / all female > * etc. > > Knowing the problem, how do I go about organizing my code into > controllers and actions that can handle this application? Do I have a > "DataEntryController"? Do I have a controller per Member, eg: > StudentController, ClassController, etc.. Do I have a ReportController, > or do I have a controller per report? If I have a controller per > Member, is it safe to say that each controller would have the actions > save, delete, new, view? Or something similar to round out the CRUD'ness > of these memebers?