데이터를 신뢰하는 key
보통은 두 개의 데이터베이스 테이블을 이을 때 사용된다.
ManyToOne과 연관되어 있음
ex)
todo-List를 만들때 가장 기초가 되는 생각:
1. 할일리스트가 있어야 그 안에 할일목록들을 만든다.
= 할일리스트가 없는 할일목록은 없다. 무조건 같이 해야한다.
private Long todoTitleId;
@ManyToOne
private TodoTitle todoTitleId;
리스트를 삭제하려면 리스트의 할 일들을 삭제해야한다>
외래키는 N쪽에 붙는다. 그래서 외래키가 없어지면, 그 안의 할일은 없어지지 않은 상태로 없어진다. (todo들은 남아있는데 todolist가 없어지면, todolist가 없는 todo가 생겨버린다)
따라서 Foreign로 실행을 해서 데이터가 들어있다고 믿고, 실행된다. (=데이터의 신뢰성)
근데 외래키를 포기할 수도 있다. 왜? 서로에게 영향을 덜 받기 위해서이다.