개발일지/2023_한이음

[개발] 기능추가 - school 데이터의 추가(dept, tag 테이블)

기억지기 개발자 2023. 7. 8. 11:09

🛤️상황

기존에 학교에 대한 정보에 해당 학교에 대한 학과나 태그에 대한 정보는 반환하지 않았다. 

하지만 반드시 필요한 정보들이기 때문에 그 부분을 내가 개발하기로 하였다.

  • 학과나 태그는 하나의 학교에 여러 가지 값들을 갖는 테이블이기 때문에 school 테이블의 입장에서 학과와 tag는 
    @OneToMany 관계이다.

🗝️과정/해결

<school 테이블 중 일부>

@OneToMany(mappedBy = "schoolId", cascade = CascadeType.ALL)
    private List<Tag> tag;

 

  • tag는 여러 값들이 하나의 school에 존재하니 List 형태로 저장하기로 했다.
  • school 테이블의 깔끔함(?)을 위해서 db에 직접 저장되는 방식이 아닌 것으로 선택했다. 
  • (학과(dept)도 동일한 방식으로 진행)

 <Tag 테이블 중 일부>

@ManyToOne
@JoinColumn(name = "schoolId")
private school schoolId;
  • 초기에는 tag 테이블에서도 위처럼 school 테이블과 조인 관계를 형성.
  • 추후에 굳이 조인 관계를 형성할 필요가 없다고 느낌.
    ➡️school 테이블과 tag 테이블의 관계를 표현하기 위해서는 조인이 필요할 수 있지만 생각해 보면 굳이 schoolId이라는 칼럼이 school 테이블의 id를 알지 않아도 나중에 필요할 때 tag 테이블의 schoolId 값만 조회하면 데이터들을 얻을 수 있다고 판단.
  • 그래서 아래와 같이 schoolId를 구성하였다. 
  • (dept도 동일하게 진행)
private Long schoolId;