현재 chatbot 테이블 에서 넘어온 이미지를 diary 테이블 에서 동일하게 사용하기 위해 이미지 테이블을 별도 중계 테이블로 두고 chatbot_id
, diary_id
를 FK로 잡아둔 후 NOT NULL로 설정해뒀다.
chatbot_id
, diary_id
를 모두 NOT NULL로 설정하면
하나의 이미지를 두 테이블에서 동시에 참조하는 것이기 때문에 데이터 중복이 발생하거나 삽입 오류가
발생할 수도 있다고 한다.
chatbot_id
, diary_id
중 하나를 NULL로 하면 이미지 참조를 유연하게 괸리할 수 있지만,
같은 이미지를 무조건 공유해야 하기 때문에 NOT NULL이 필수적이라고 생각한다.
그렇다면 Image 테이블은 이미지를 저장하는 역할만 수행하고, 이미지는 chatbot과 diary에서
양쪽으로 참조하는 방향으로. 이렇게 하면 chatbot에서 업로드된 이미지는 diary로 변환될 때 그대로
재사용 될것이다.
chatbot에서 이미지 업로드 : 사용자가 이미지 업로드하면 image 테이블에 저장,
chatbot 테이블은 업로드된 이미지의image_id
참조diary로 변환 : chatbot에서 사용한
image_id
를 그대로 diary의image_id
로 참조하여 연결,
새로운 이미지 업로드할 필요 없이 기존 image 데이터 사용