Re: delete cascade

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Tue, 17 Apr 2007 12:52:36 GMT
Message-ID: <oq3Vh.25367$PV3.257432_at_ursa-nb00s0.nbnet.nb.ca>


paul c wrote:

> paul c wrote:
>

>> Bob Badour wrote:

>
> ...
>
>>> No. One states that deleting the invoice automatically deletes any 
>>> items that exist. The other states that one may not delete an invoice 
>>> when any items exist.
>>
>> Thanks, that clears up my confusion.  Still, it strikes me as more an 
>> attitude than a logical interpretation.  If I could, I'd rather wonder 
>> how to declare a reference from the logical complement of invoices to 
>> the complement of items!

>
> 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.

To bring this back to where it started, you suggested that all foreign key references could cascade deletes. However, consider what would happen if one had a reference to a relation describing allowed statuses or geopolitical boundaries.

Before one deletes the 'Pending' status, one would want to make sure no invoices are pending. Deleting thousands of pending invoices would be a mistake.

Likewise, before deleting West Germany, one would want to make sure all the German invoices are updated to the new reunified Germany first. Received on Tue Apr 17 2007 - 14:52:36 CEST

Original text of this message