Sean,
Thanks for the detailed response. Here's some additional detail in
response to your questions. The applications on this site are tools for
both employees and other business partners (contractors, distributors,
etc.), i.e. the Groups. Each Group is a separate concrete CFC because,
while their Members have some properties in common (name, phone #, etc.),
they each have their own set of unique properties.
I know about Members either from other internal sources (e.g. an employee
directory) or because the member population is maintained on the site. For
example, one application tracks the training needs and status of our
contractors. Employee Users maintain the total population of contractors in
the application and track their training, so that all of our contractors are
Members of the Contractor Group. In addition, a contractor may choose to
view their own status on-line, so they can register and become a User. The
criteria for authorization to register is that they are a Member of their
corresponding Group so that a User is always a Member but a Member may not
be a User. So... a User is a Member with some additional properties
(userID, preferred language, etc.).
In terms of your comment about substitutability - they are generally
substitutable but I can't think of a case where I would. Members are
passive entities - they either provide information (e.g. a directory of
contractors) or they have things done to them (e.g. there status is
undated). Users are Members who have become active in that they can do
things (e.g. they can update their profiles, request training, etc.).
There is also the issue of User access to various applications and their
corresponding roles but I think I understand those relationships. I hope I
didn't confuse things further.
Walt
-----Original Message-----
From: Sean A Corfield [mailto:[EMAIL PROTECTED]
Sent: Monday, November 24, 2003 9:35 PM
To: [EMAIL PROTECTED]
Subject: Re: [CFCDev] [follow-on] Using components
On Nov 24, 2003, at 4:41 PM, Sparrow-Hood, Walter wrote:
> I have a corporate portal with many applications that are accessed by
> various groups( employees, contractors, distributors, etc.). Each
> group
Sounds like these are your "roles"...
> (i.e. a database table) is composed of all possible members of the
> group,
> i.e. all employees. Individual members of the group belong to
> companies and
> that is a 'has a' company relationship. Where I'm stuck is that
> members can
...OK, so a member has-a role and has-a company (belongs-to).
> register at the site and become registered users, i.e. users are a
> subset of
If a member doesn't register on the site, how do you know about them?
In other words, is a non-registered member an important entity in your
business model?
> members. However, registered users can belong to any of the groups.
> What
> should the relationship be between users and members? Is it a user
> 'is a'
> member? However, a user can belong to any group. Or, is it a member
> 'has
> a' user profile? Thoughts?
If user is-a member (which might be reasonable here - see below), then
user has-a company and user has-a role automatically - because user
inherits those from member and that determines what groups a user
belongs to, yes?
Looking at user is-a member - is-a is all about substitutability in
your business model. If the is-a relationship holds, then you can take
a user and substitute them freely for a member (with the same company /
role) anywhere in your business model and it will not break things. In
other words, anything that the business model wants to do to a member
should be possible with a (registered) user with the same results.
That relationship would break down only if you can have registered
users who do not fit your business model for member, i.e., they don't
have a company and/or they don't have one of your predefined roles.
I think it's also important to address the question about
non-registered users above - that really has an impact on the
user-member relationship.
Hope that makes sense?
Sean A Corfield -- http://www.corfield.org/blog/
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
----------------------------------------------------------
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]