(ERD 작성) ChatBot과 Diary에서 이미지 테이블 설계

(ERD 작성) ChatBot과 Diary에서 이미지 테이블 설계

·

1 min read

현재 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로 변환될 때 그대로
재사용 될것이다.

  1. chatbot에서 이미지 업로드 : 사용자가 이미지 업로드하면 image 테이블에 저장,
    chatbot 테이블은 업로드된 이미지의 image_id 참조

  2. diary로 변환 : chatbot에서 사용한 image_id를 그대로 diary의 image_id로 참조하여 연결,
    새로운 이미지 업로드할 필요 없이 기존 image 데이터 사용