Re: delete cascade

From: paul c <toledobythesea_at_oohay.ac>
Date: Tue, 17 Apr 2007 13:05:56 GMT
Message-ID: <UC3Vh.87517$DE1.18859_at_pd7urf2no>


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 */

-> A or (not B) = true /* de Morgan */

in other words,
Invoices{Invoice#} OR NOT(Items{Invoice#}) is not empty.

p Received on Tue Apr 17 2007 - 15:05:56 CEST

Original text of this message