상호참조에 대해서...

케바케 2014.11.21 00:02 Views : 4368

안녕하세요?


MySQL 사용하다 최근 MSSQL 을 사용하는데 질문이 있어 문의 드립니다.


MSSQL 2008 기준 디자이너를 통해 데이터베이스 다이어그램을 이용하는 도중 문득 문제가 생겼습니다..



제목 없음.png


Member 테이블이 부모 입니다.


Product.Comment 테이블 MemberID 는 Member 테이블의 MemberID 를 참조(외래키) 하고 있고,

Product.Comment.Reply 테이블 CommentID 는 Product.Comment 테이블의 CommentID 를 참조(외래키) 하고 있습니다.


여기 까지는 당연히 문제 없습니다.


A사용자가 남겼던 코멘트 게시물에 대해 A사용자가 탈퇴를 한경우 A사용자의 코멘트는 모두 삭제되어야 하니까요.


근데 문제는 다음 입니다.


Product.Comment.Reply 테이블의 MemberID 가 Member 테이블의 MemberID 를 참조하는경우


상호 참조에러로 외래키를 지정할 수 없습니다.


B사용자가 A사용자의 게시물에 대한 댓글을 남겼는데 만약 B사용자가 탈퇴를 하는 경우 당연히 남겼던 리플은 삭제되야 합니다.


1. 리플은 해당 코멘트게시물이 삭제되는경우 삭제

2. 사용자가 탈퇴시 남겼던 코멘트 리플 삭제


위 두가지 요건을 만족해야 참조무결성이 보장되는게 맞는거 같은데


어째서 상호참조 에러를 뿜는건가요?


CASCADE 를 주는 대신 NO ACTION, NULL 을 하게 되면 해당 사용자가 탈퇴해도


찌꺼기 리플은 남게되는데 꼭 CASCADE 를 주고 싶습니다.


해결 방안이 있을까요?

No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 2161
8369 쿼리문의입니다. xml 데이터 풀어헤치기? ㅠ ㅠ [3] 더따뜻한 2014.11.25 2292
8368 복제 구성시 다른서버에서 구독할때 [1] 파릇파릇 2014.11.24 5541
8367 고수님들께 날짜검색 질문드립니다. [2] 김현민_284902 2014.11.24 2137
8366 mssql 초급자가 쿼리질문 드립니다 [3] Sinlay 2014.11.24 2700
8365 초보적인 질문입니다. where like '%' 입력 받고 싶을때 [1] 휘댕 2014.11.23 2487
8364 수량 합계 쿼리 요청드립니다. [3] 뇽이 2014.11.21 2970
» 상호참조에 대해서... 케바케 2014.11.21 4368
8362 윈도우 인증과 SQL 인증시 네트워크 공유 폴더 접근 권한 차이? [1] ADA 2014.11.20 3589
8361 비교 ^^.. [4] 마힐링 2014.11.20 2383
8360 디비간트랜잭션 문의입니다 Sisylian 2014.11.20 2096
8359 linked서버 또는 복제? 파릇파릇 2014.11.20 2199
8358 프로시저의 성능 [1] embster 2014.11.19 2352
8357 중복되지 않는 시간 찾기 [1] taz2315 2014.11.19 2501
8356 테이블 인덱스 수에 따른 성능 질문 드립니다. [5] 가지마세요 2014.11.19 3334
8355 프로시저가 실행되지 않을 수도 있나요? [2] 연어초밥 2014.11.19 2345
8354 db에 html 이 계속 입력됩니다 지워도 계속입력되는데... 어떻게 해야 할지 막막합니다. [1] 황혼사 2014.11.19 2367
8353 Bulk Insert 사용 질문 드립니다. 대상 타겟이 네트워크 드라이브인 경우입니다. [2] ADA 2014.11.18 20055
8352 저장 프로시져에서 nvarchar 파라미터 입력문제 [4] 제온 2014.11.18 5197
8351 작년 매출을 현 매출과 같이 목록에서 노출시키려고 합니다. [1] 냥냥 2014.11.18 2770
8350 SQL 확인 부탁드립니다.. [1] 아렌티 2014.11.18 2883





XE Login