복붙노트

[SQL] 나는 CASCADE DELETE 규칙을 사용해야합니까? [복제]

SQL

나는 CASCADE DELETE 규칙을 사용해야합니까? [복제]

난 항상 너무 DELETE CASCADE를 사용하는 무서워하지만, 좀 더 자신감을 얻을로 봤는데 (게으른 : D), 내가 나쁜 그것을 할 수있는 방법을 생각하고, 그것은 가장 좋은 방법은 그것을 사용하거나 그것을 피해야하고 청소 내 외래 키 등 (저장 프로 시저) 구식 방법은?

해결법

  1. ==============================

    1.DELETE CASCADE ON 괜찮지 만, 종속 행이 정말 경우에만 행의 논리적 확장은 삭제되는. 명확하게 헤더와 몇 가지 라인으로 구성 순서를 삭제할 때문에 DELETE 주문 관련 ORDER_LINES을 삭제하는 예를 들어, OK입니다. ORDERS가 자신의 권리를 중요하기 때문에 다른 한편으로는, DELETE 고객은 고객의 속성 그렇지 않은, 관련 ORDERS를 삭제하지 않아야합니다.

    DELETE CASCADE ON 괜찮지 만, 종속 행이 정말 경우에만 행의 논리적 확장은 삭제되는. 명확하게 헤더와 몇 가지 라인으로 구성 순서를 삭제할 때문에 DELETE 주문 관련 ORDER_LINES을 삭제하는 예를 들어, OK입니다. ORDERS가 자신의 권리를 중요하기 때문에 다른 한편으로는, DELETE 고객은 고객의 속성 그렇지 않은, 관련 ORDERS를 삭제하지 않아야합니다.

    이것에 대해 생각하는 한 가지 방법은 다음과 같습니다 나는 DELETE X를 발행하고 또한 Y를 삭제하면, 내가 행복이나 불행이 될 것인가? 내가 DELETE X를 발행하고 이야기하고있는 경우 "Y가 존재하기 때문에 삭제 X는 없습니다"그리고 보호의 기뻐하거나 불편에 자극 것인가?

  2. ==============================

    2.나는 일반적으로 옵트를 모두 삭제 사용하는 저장 프로 시저를 통해 삭제하지 그래서 나는, (명시 적으로 선언하여) 삭제 정확히 제어 할 수있다 선호한다.

    나는 일반적으로 옵트를 모두 삭제 사용하는 저장 프로 시저를 통해 삭제하지 그래서 나는, (명시 적으로 선언하여) 삭제 정확히 제어 할 수있다 선호한다.

  3. from https://stackoverflow.com/questions/278392/should-i-use-the-cascade-delete-rule by cc-by-sa and MIT license