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?

Reply via email to