Spring Foreign Key

춤인형의 개발일지·2025년 1월 10일

이것저것

목록 보기
7/13

foreign Key

데이터를 신뢰하는 key
보통은 두 개의 데이터베이스 테이블을 이을 때 사용된다.
ManyToOne과 연관되어 있음

foreign Key의 특징

  • 신뢰할 수 있는 데이터만 들어간다.
  • 데이터를 신뢰하기 때문에 실수라도 이상한 데이터가 들어올 걱정이 없다.
    = 다른 사람들이 봤을 때도 신뢰할 수 있게됨

ex)
todo-List를 만들때 가장 기초가 되는 생각:
1. 할일리스트가 있어야 그 안에 할일목록들을 만든다.
= 할일리스트가 없는 할일목록은 없다. 무조건 같이 해야한다.

  • ManyToOne을 사용하지 않을때
    -> 할일이 없이 목록들만 추가되는 현상이 발생
private Long todoTitleId;
  • ManyToOne을 사용할 때
    -> todoTitle이라는 id값이 있다고 가정하고, 그냥 믿는 것.
@ManyToOne
private TodoTitle todoTitleId;

리스트를 삭제하려면 리스트의 할 일들을 삭제해야한다>
외래키는 N쪽에 붙는다. 그래서 외래키가 없어지면, 그 안의 할일은 없어지지 않은 상태로 없어진다. (todo들은 남아있는데 todolist가 없어지면, todolist가 없는 todo가 생겨버린다)

따라서 Foreign로 실행을 해서 데이터가 들어있다고 믿고, 실행된다. (=데이터의 신뢰성)

Foreign Key포기

근데 외래키를 포기할 수도 있다. 왜? 서로에게 영향을 덜 받기 위해서이다.

  • 엔티티의 경계부분만 안쓰게 된다. 분리를 하게 되면 각자가 서로 의존하는게 낮아지게 된다.(=결합도가 떨어진다.) 계속해서 서로에게 영향을 받게 되면, 나중에 어려워지기 때문이다.

0개의 댓글