결론 만약 A tuple 선언시, 특정 관계 설정시, On Delete Cascade를 명시했다면,
"on delete cascade"는 B tuple이 foreign key로 A tuple을 가리키고 있을 때, A tuple을 삭제하면 B tuple도 같이 삭제되는 기능이다.(반대는 영향을 주지 않음)
생각해보니, "on delete cascade"를 사용하지 않게되면 A tuple을 삭제하더라도 B tuple의 foreign key에 내용(A tuple)은 남아있게 되어 무결성이 깨진다. 이를 고려해 생각해 보면 foreign key로 가리키고 있는 tuple이 삭제되면 해당 foreign key를 가지고 있는 tuple들에 대해 어떤 조치가 있어야 하는 것이 당연한 것 같다.
출처: https://technote.kr/197 [TechNote.kr]
Task - Comment :
-> Task 쪽에 On delete cascade를 지정해주어야 한다.(Task가 사라지면, 관련된 Comment도 다 사라지는 게 맞다)
-> Comment 는 사라져도, Task는 살아 있어야 하므로, Comment 쪽에는 지정하면 안된다.
User - Comment :
-> User 쪽에 On delete cascade를 지정해주어야 한다.(User가 사라지면, 관련된 Comment도 다 사라지는 게 맞다.)
-> Comment 는 사라져도, User는 살아 있어야 하므로, Comment 쪽에는 지정하면 안된다.
Task - User [Report] :
-> Task가 사라져도, User는 남아야 한다.
-> User가 사라져도, Task는 남아야 한다.
Task - User [Assignee]:
-> Task가 사라져도, User는 남아야 한다.
-> User가 사라져도, Task는 남아야 한다.
'[DBA] Database > SQL ∕ Mssql' 카테고리의 다른 글
INDEX에 대한 상식 (1) | 2021.01.05 |
---|---|
Mssql 기초 사이트 (0) | 2020.09.09 |
최근댓글