Re: delete cascade
From: paul c <toledobythesea_at_oohay.ac>
Date: Tue, 17 Apr 2007 13:21:42 GMT
Message-ID: <GR3Vh.87974$aG1.10937_at_pd7urf3no>
>
>
> Ahhh, so 'and' and 'or' have higher precedence than '='. That explains
> much.
> ...
>
>
> Okay, that makes sense. How does it relate to cascading again?
Date: Tue, 17 Apr 2007 13:21:42 GMT
Message-ID: <GR3Vh.87974$aG1.10937_at_pd7urf3no>
Bob Badour wrote:
> paul c wrote:
>
>> Bob Badour wrote: >> >>> paul c wrote: >> >> >> ... >> >>>> Sorry, I think I put that wrongly. Maybe the constraint that "one >>>> may not delete an invoice when any items exists would look something >>>> like "(NOT Invoices{Invoice#}) AND Items{Invoice#} = FALSE", ie., a >>>> reference from the complement of invoices to items. >>> >>> >>> I am not sure I fully understand your syntax and the order of >>> precedence you are using, but wouldn't demorgan make that: >>> >>> Invoices{Invoice#} OR Items{Invoice#} >>> >>> That doesn't seem like the constraint at all to me. >> >> >> Not sure I entirely understand my notation either but here's what I >> get if I substitute "A" for the invoices projection and "B" for the >> items projection: >> >> (not A) and B = false /* ie., the join is empty */ >> >> -> not ((not A) and B) = true /* negate both sides */
>
>
> Ahhh, so 'and' and 'or' have higher precedence than '='. That explains
> much.
> ...
Sorry for not explaining that.
>
>> -> A or (not B) = true /* de Morgan */ >> >> in other words, >> Invoices{Invoice#} OR NOT(Items{Invoice#}) is not empty.
>
>
> Okay, that makes sense. How does it relate to cascading again?
p Received on Tue Apr 17 2007 - 15:21:42 CEST