I assume your queries are all in your Student and Class CFCs?

For a situation like this, I'd set up three CFCs (possibly more), Student,
Class and EnrollmentManager.  Student and Class probably wouldn't change
much from what you have.  Student (in addition to basic get/set methods)
would have addClass(), removeClass() and getClasses().  Class would have the
corresponding methods for Students.  I'd use an array as an instance
variable for storing the list in both cases.

When a student registers for a class, you'll call a method on the
EnrollmentManager CFC, which would create the necessary Student and Class
objects, and then pass them to eachother's addXXX() methods:

method registerForClass(studentID, classID) {
  var student = getStudentFromId(studentID);
  var class = getClassFromId(classID);

  class.addStudent(student);
  student.addClass(class);
}

Then, when you go to update a student in the database, your update the
student table just like you're doing now, and then check the enrollment
table to see if it matches the classIDs that are stored in your array of
Classes.  If any are extra, delete them, if any are new, add them.

When you instantiate a Student from the database, you'll use a similar
mechanism.  Create the Student object, and then either pass in an array of
Class objects, or add them individually with the addClass() method.

That being said, I really don't like the idea of any persistance code in a
business object CFC (Class, Student), because if you then change persistance
mechanism, you have to wade through a lot of code to make the changes.  I'd
strongly recommend you build a persistance CFC (either a global one, or one
for each distinct BO type) that accepts a BO and persists it, whether
insert, update or delete.  That's also where your methods for creating new
BOs would probably reside.

HTH,
barneyb

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Behalf Of Nelson Winters
> Sent: Thursday, October 09, 2003 9:54 AM
> To: [EMAIL PROTECTED]
> Subject: [CFCDev] design question...
>
>
> I've been having difficulty understanding how to model the following using
> CFC's:
>
> Suppose I'm trying to create a model where I have students and classes.  I
> would think that I would have a student type and a class type.  I
> would also
> like to be able to call a student.getClasses() to retrieve the
> classes that
> the student is in.  I would also like to be able to call
> class.getStudents()
> to retrieve the students in the class.  Set this up in a
> relational table, I
> would have a table for students, classes and class enrollment.  However, I
> don't understand how to store the relationship using objects?
>
> Any insight would be much appreciated.
>
> -Nelson
>
>
> ----------------------------------------------------------
> You are subscribed to cfcdev. To unsubscribe, send an email
> to [EMAIL PROTECTED] with the word 'unsubscribe cfcdev'
> in the message of the email.
>
> CFCDev is run by CFCZone (www.cfczone.org) and supported
> by Mindtool, Corporation (www.mindtool.com).
>
> An archive of the CFCDev list is available at
> www.mail-archive.com/[EMAIL PROTECTED]
>

----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email
to [EMAIL PROTECTED] with the word 'unsubscribe cfcdev' 
in the message of the email.

CFCDev is run by CFCZone (www.cfczone.org) and supported
by Mindtool, Corporation (www.mindtool.com).

An archive of the CFCDev list is available at www.mail-archive.com/[EMAIL PROTECTED]

Reply via email to