-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
관계설정에 관해 질문 드립니다.
21.11.22 13:07 작성 조회수 234
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
강의를 들은 후 제가 직접 테이블을 만들어 테스트를 하던중 관계설정을 어떻게 해야 할지 감이 안오는 부분이 생겨 질문 드립니다.
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
강의를 들은 후 제가 직접 테이블을 만들어 테스트를 하던중 관계설정을 어떻게 해야 할지 감이 안오는 부분이 생겨 질문 드립니다.
* DB 테이블 (car,car_data)
car 테이블: 차량 등록 시 차량의 정보를 저장하는 테이블.
car_data 테이블: car_id를 foreign_key로 가지며, 일정 주기마다 차량의 정보가 업데이트 되는 테이블.
같은 car_id를 가지는 car_data테이블의 데이터 중 실제 사용하는 데이터는 가장 최신의 데이터 하나입니다.
즉 car_data가 3번 업데이트 된 후의 db 상태를 보면
* car * car_data
이런 식으로 저장이 되어 있습니다.
그리고 제가 조회하고 싶은 데이터는
car_id를 가지고 해당 car의 정보와 해당 id를 foreign_key로 가지는 car_data중 가장 최근에 저장된 데이터를 조인해서 가져오고 싶습니다.
즉 쿼리문으로 보자면
SELECT * FROM car c JOIN ( SELECT * FROM car_data cd WHERE cd.car_id = 1 LIMIT 1
) last_cd on last_cd.car_id = c.car_id;
이런식으로 될 것 같습니다. (최신데이터 판별은 날짜를 기준으로 할 것 같지만 여기에서는 그냥 서브쿼리에 들어있는 데이터가 최신데이터라고 가정하겠습니다.)
즉 car_data에서 같은 car_id를 foreign_key로 가지는 데이터들 중 제가 사용하는 데이터는 항상 하나입니다.
이 때 관계가 일대일인지 일대다인지.. 양방향인지.. 단방향인지를 고민해보는데 감이 오지 않아서 질문 드립니다..
긴글 읽어주셔서 감사합니다.
답변을 작성해보세요.
0
답변 1