Re: Delete rules on flattened relationships
Re: Delete rules on flattened relationships
- Subject: Re: Delete rules on flattened relationships
- From: Ramsey Gurley <email@hidden>
- Date: Wed, 09 Nov 2011 14:55:22 -0700
On Nov 9, 2011, at 2:34 PM, Paul Hoadley wrote:
> Hi Ramsey,
>
> On 10/11/2011, at 4:24 AM, Ramsey Gurley wrote:
>
>> On Nov 8, 2011, at 8:34 PM, Paul Hoadley wrote:
>>
>>> So the advice is that the intended delete rule(s) should operate on the real relationship chain, not shortcut via the flattened relationship. That's fine, but are Nullify and Do Nothing really interchangeable on a flattened relationship, as it's almost suggested above? It's important because the default is Nullify, so all flattened relationships have that rule unless you change them. But depending on whether that rule is applied before or after the rule(s) applied over the real relationship chain, Nullify might end up giving you the wrong semantics. Shouldn't all flattened relationships have a Do Nothing delete rule (at least by default)?
>
>> Not all... at least not flattened many to many. Those cascade. Which led me to a surprising find as well. The opposite side of that cascade is nullify, which I thought was incompatible with cascade. But, evidently, it works and I can see why it would be needed on the other side of the delete.
>
> Say I have two entities, User and Role, and a joining entity UserRole to create a many-to-many relationship between them. So I have a relationship 'userRoles' from User to UserRole (and a relationship 'userRoles' from Role back to UserRole). I flatten the relationship on User, so I also have a 'roles' relationship on that entity.
>
> Say I delete a User. I want User.userRoles to Cascade. And I want both UserRole.user and UserRole.role to Nullify. And at that point, isn't the work done? So in this case, wouldn't I want No Action on User.roles? And hence isn't this a counter-example to your advice above? (It may well not beātell me if I'm wrong!)
>
I looked a second time. The cascade is actually on the non-class property. The flattened is nullify... so maybe it would work with no action. I'm not recommending anything, just noting something I saw which seemed odd.
Ramsey _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden