2008-11-10 3 views

답변

72

ON DELETE CASCADE는 유효하지만, 종속 행이 실제로 삭제되는 행의 논리적 확장 일 때만 유효합니다. 예를 들어, DELETE ORDERS가 헤더와 일부 행으로 구성된이 주.을 h 제하려는 명확한 ORDER_LINES를 h 제할 수 있습니다. 반면 ORDERS는 자신의 권리로 중요하기 때문에 DELETE CUSTOMER는 관련 ORDERS를 삭제하면 안됩니다. ORDERS는 고객의 속성이 아닙니다.

이것에 대해 생각해 볼 수있는 한 가지 방법은 : 내가 DELETE X를 발행하고 Y도 삭제하면 행복 할까? 불행할까요? 그리고 내가 X 삭제를 발행하고 "Y가 있기 때문에 X를 삭제할 수 없다"라고 말하면 나는 기꺼이 보호를 받거나 불쾌감을 느끼게됩니까?

+0

고객이 존재하지 않는다면 어떤 호의적 주문 항목이 좋을까요? – codersofthedark

+0

고객 **은 ** 존재하게됩니다. 왜냐하면 계단식 주문을 허용하지 않으면 고객 삭제가 실패 할 것이기 때문입니다. –

+1

@codersofthedark 관리자가 실수로 사용자를 삭제하면 주문을 삭제해서는 안되며, 그렇지 않으면 전체 회계 부서에서 토스를 수행해야합니다. – dotslash

10

정확히 무엇이 삭제되었는지 (명시 적으로 선언하여) 제어하기를 선호하므로 일반적으로 저장 프로 시저를 통해 삭제하도록 선택하고 계단식 삭제를 사용하지 않도록 선택합니다.

관련 문제