JackJack
31
2020-01-17 06:56:43
6
618

안녕하세요. ajax 이용한 댓글 관련 질문입니다.


ajax를 이용해서 게시글에 댓글을 등록,수정,삭제,페이징처리까지 다했습니다.


그런데 댓글이 있는 게시글을 삭제하려면 무결성 제약 조건, 즉 자식테이블의 자료가 남아있어서


부모테이블을 삭제할 수 없습니다. 이게 무슨 문제인지는 알겠는데, 부모테이블의 mapper.xml에서 수정이 


들어가야하는지.. 어떻게 해야하는지 감이 잡히지 않습니다..


혹시 힌트를 좀 주실분 계신가요?

0
  • 답변 6

  • OkiDoki
    2020-01-17 08:16:10 작성 2020-01-17 08:19:00 수정됨
    부모 테이블에 있는 데이터를 삭제하려고 하니
    그 부모에 딸린 자식 데이터가 남아 있어 삭제가 되지 않는 문제입니다.
    만약 거기에 딸린 자식 데이터가 있다면 그 자식 데이터도 삭제한 뒤 부모 데이터를 삭제할 수 있습니다.
    뭐... 질문내용이나 답변이나 똑같은 느낌이지만...
    1. 부모 데이터에 걸려 있는 외래키로 자식 테이블의 데이터를 조회한다.
    2. 조회된 자식 데이터를 삭제한다.
    3. 부모 데이터를 삭제한다.
  • 두유콩
    2020-01-17 10:00:49

    테이블에 외래키 설정하셨을때 cascade delete 설정하면 될거같은데요.

  • 스트라
    557
    2020-01-17 10:32:05 작성 2020-01-17 10:32:56 수정됨

    운영적인 측면에서는

    delete 플래그(Y/N) 컬럼을 추가해서 플래그만 업데이트 한 후, 조회 시에는 삭제 플래그가 N인 경우만 노출 시키도록 하는 방법도 있습니다.

    가끔 삭제한 내용을 살려달라고 하는 경우도 있어서... 

    이 경우는 외래키 문제가 발생하지 않습니다.

  • JackJack
    31
    2020-01-17 14:38:44

    감사합니다. 알려주신 내용 바탕으로 시도해보겠습니다.

  • JackJack
    31
    2020-01-17 15:18:14

    감사합니다 table 간에 외래키 관계가 있었는데 두유콩님 말대로 ON DELETE CASCADE ENABLE 을 주니까 되네요. 


    도와주셔서 정말 감사합니다.

  • JackJack
    31
    2020-01-18 00:15:12
  • 로그인을 하시면 답변을 등록할 수 있습니다.