Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> c.d.o.misc -> Re: difficult design question

Re: difficult design question

From: Brian Tkatch <N/A>
Date: Mon, 26 Nov 2007 14:55:10 -0500
Message-ID: <>

On Mon, 26 Nov 2007 10:43:06 -0800 (PST), wrote:

>On Nov 26, 10:12 am, Brian Tkatch <N/A> wrote:
>> On Mon, 26 Nov 2007 10:04:37 -0500, Brian Tkatch <N/A> wrote:
>> >On Sun, 25 Nov 2007 20:29:12 -0800 (PST), wrote:
>> >>I have a design question I've been tossing around, but can't seem to
>> >>come up with a good solution. Basically, I have a work item. Each
>> >>work item can have one or more assignments. Or, it could have one or
>> >>more "groups of assignments". Or, it could have a combination (that
>> >>is assignments and groups of assignments). Each assignment in turn
>> >>could have as its children one more assignments and / or groups of
>> >>assignments, etc.
>> >>Also, it is important to note, a work item could have 0 groups and 0
>> >>assignments. That is, it doesn't need to have any children. Each
>> >>group must have at least one assignments within it. Also, it is
>> >>necessary to keep track of the "parent assignment" for each
>> >>assignment, even if the child assignment is part of a group.
>> >>So for instance:
>> >> Work item
>> >> |
>> >> ----------------------------
>> >> | | |
>> >> GP1 AS1 AS2
>> >> | | |
>> >> ---------- GP2 AS3
>> >> | | |
>> >>AS4 AS5 -------------
>> >> | |
>> >> AS6 AS7
>> >>The design I was leading towards was something as follows:
>> >>A work item has as its child 0,1 or more Groups. A work item also has
>> >>as its child 0, 1 or more assignments.
>> >>A group has as its child 1 or more assignments.
>> >>An assignment has as its child 0,1 or more assignments. An assignment
>> >>also has as its child 0, 1 or more groups.
>> >>The problem with this is that with this model, a group could
>> >>theoretically contain an assignment form a different group.
>> I do not understand how this problem arises. Are you talking logially,
>> or in the database?
>> B.
>> > For
>> >>instance in the example above, GP1, which should have assignments AS4
>> >>and 5, could theoretically have AS6 as part of its group too.
>> >>However, the business does not allow for this.
>> >>1 -- I am having difficulty coming up with an appropriate logical
>> >>model.
>> >>2 -- How would I implement this in the Oracle database?
>> >>Any help would be appreciated. Thanks!
>> >>Jan
>> >You call this difficult? :)
>> >What have you tried so far?
>> >B.- Hide quoted text -
>> - Show quoted text -- Hide quoted text -
>> - Show quoted text -
>I have created a work item entity with a child assignment entity which
>is self-referencing. Also, the work item entity has a group entity as
>a child. Additionally, the group entity has the assignment entity as
>its child. I have a relationship in the other direction too, from
>assignment to group to keep track of the parent assignment of each
>group (a requirement to know the parent).
>This all seems ok logically, but it allows for the out-of-sync
>situation I described above. And, when implemented in the database, I
>have shown that I can put assignments in groups where they shouldn't
>belong. I know I can have my application handle this business
>requirement, but I'd like to model it, and have the database handle it
>if possible.

Thanx for explaining. I do not understand it well enough, but i can make some guesses. If you did put together the TABLEs already, posting the SQL scripts might prove to be very helpful.

My understanding is, you are trying to associate two children from the same parent:

Parent: Id
Child1: Id, Parent
Child2: Id, Parent, Child1

The problem being that Child_2 can be associated directly two different Parents. One directly and one indirectly through Child1.

If that is the problem, a solution is simple. The FOREIGN KEY on Child2 should include the Parent's id from Child1.

B. Received on Mon Nov 26 2007 - 13:55:10 CST

Original text of this message