중복의 : When/Why to use Cascading in SQL Server?CASCADE DELETE 규칙을 사용해야합니까?
난 항상 CASCADE 삭제 사용하기에 너무 겁이 있었어요,하지만 난 더 자신감 얻을로 (게으른 : D), 내가 생각하고 그것이 얼마나 나쁜 될 수있다, 그것을 사용하는 것이 가장 좋은 방법인가요? 아니면 그것을 피하고 외래 키 등을 구식 방식으로 (저장 프로 시저로) 정리해야합니까?
중복의 : When/Why to use Cascading in SQL Server?CASCADE DELETE 규칙을 사용해야합니까?
난 항상 CASCADE 삭제 사용하기에 너무 겁이 있었어요,하지만 난 더 자신감 얻을로 (게으른 : D), 내가 생각하고 그것이 얼마나 나쁜 될 수있다, 그것을 사용하는 것이 가장 좋은 방법인가요? 아니면 그것을 피하고 외래 키 등을 구식 방식으로 (저장 프로 시저로) 정리해야합니까?
ON DELETE CASCADE는 유효하지만, 종속 행이 실제로 삭제되는 행의 논리적 확장 일 때만 유효합니다. 예를 들어, DELETE ORDERS가 헤더와 일부 행으로 구성된이 주.을 h 제하려는 명확한 ORDER_LINES를 h 제할 수 있습니다. 반면 ORDERS는 자신의 권리로 중요하기 때문에 DELETE CUSTOMER는 관련 ORDERS를 삭제하면 안됩니다. ORDERS는 고객의 속성이 아닙니다.
이것에 대해 생각해 볼 수있는 한 가지 방법은 : 내가 DELETE X를 발행하고 Y도 삭제하면 행복 할까? 불행할까요? 그리고 내가 X 삭제를 발행하고 "Y가 있기 때문에 X를 삭제할 수 없다"라고 말하면 나는 기꺼이 보호를 받거나 불쾌감을 느끼게됩니까?
정확히 무엇이 삭제되었는지 (명시 적으로 선언하여) 제어하기를 선호하므로 일반적으로 저장 프로 시저를 통해 삭제하도록 선택하고 계단식 삭제를 사용하지 않도록 선택합니다.
고객이 존재하지 않는다면 어떤 호의적 주문 항목이 좋을까요? – codersofthedark
고객 **은 ** 존재하게됩니다. 왜냐하면 계단식 주문을 허용하지 않으면 고객 삭제가 실패 할 것이기 때문입니다. –
@codersofthedark 관리자가 실수로 사용자를 삭제하면 주문을 삭제해서는 안되며, 그렇지 않으면 전체 회계 부서에서 토스를 수행해야합니다. – dotslash