I’m not familiar with ERXPartials, but I would second the use of a role 
pattern.  I typically use this pattern for both people and companies.

To elaborate, you can have a table/entity - Person.  You then have a number of 
Role entities (WorkerRole, SupervisorRole) that inherit from a Role entity, 
where WorkerRole, SupervisorRole, and any other roles, use a single table 
(single table inheritance).  Then you have a to-many relationship from Person 
to the Role entity.

You can use validation to enforce any business rules you have (like a person 
can’t be both a supervisor and worker at the same time).

In this manner, you can have all the immutable attributes of a Person in one 
place, and all their role data (like maybe the supervisor’s head count) in the 
role where it makes sense.

An important downside of a Person entity with a sub entity of Worker and 
Supervisor - what happens when the worker gets promoted?  EOF HATES IT if you 
try and modify the entity of a particular object.  That means that you end up 
deleting John the Worker and adding John the Supervisor, destroying any history 
you had of John (like to pay records, infractions, etc).

Good luck!

Ken

On May 12, 2014, at 2:50 AM, Timothy Worman <li...@thetimmy.com> wrote:

> Ted:
> 
> Rather than inheritance, I use ERXPartials for this. Have one database entity 
> for ‘Person’ and various types of persons as partials. One database row has 
> all of the attributes of the different types.
> 
> If not partials, I probably prefer the role pattern to inheritance.
> 
> Tim
> UCLA GSE&IS
> 
> On May 11, 2014, at 1:02 PM, Theodore Petrosky <tedp...@yahoo.com> wrote:
> 
>> I am starting a project. I need to manage assets (people). But people will 
>> be both a User of the system and the managed asset. 
>> 
>> Also a person could be an employee of a company that needs to manage the 
>> assets.
>> 
>> So I thought I would create a person class and do inheritance. 
>> 
>> a worker inherits from a person
>> a supervisor inherits from a person
>> 
>> Am I going nuts and too deep with inheritance? Would it be easier to have a 
>> single entity person that has booleans to identify workers or supervisors. I 
>> mean a person could be both a worker and supervisor.
>> 
>> maybe just talking about it will help me think if through.
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/lists%40thetimmy.com
>> 
>> This email sent to li...@thetimmy.com
> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/kenlists%40anderhome.com
> 
> This email sent to kenli...@anderhome.com

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to