강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

hjun16님의 프로필 이미지
hjun16

작성한 질문수

Erd 설계 질문

작성

·

23

·

수정됨

0

안녕하세요 Ai인프런님 다름이 아니라 Erd를 설계하고 있는데

 

{949DECB7-665A-4BAD-85E7-A1D792EBB9C3}.png

화면1이 위에 있고 분야를 누르면

{A4F4A57E-C8AF-4CBD-8021-C6D9E88E034B}.png

이렇게 모달창이 뜹니다.

모달창에서 저렇게 필터 공통 아래에 요소가 여러 개 뜨고 곡물을 누르면 저렇게 여러개의 하위 요소가 뜹니다.

전체를 누르면 밑에 모든 하위요소들이 체크가 되고 하는데 나머지 하위요소들은 누를때마다

각각 넣다 뺏다 할 수 있습니다.

{5C69F740-E808-42F3-AC31-B3058EF70B0A}.png

이럴 경우 밑에 와 같이 설계하는 게 가능한지에 대해 궁금해서 질문드립니다.

챗지피티한테 물어보니 sql로 처리가 가능하다고 하는데 위에 8개의 상위분야를 따로 enum으로 빼고 분야이름으로 설계하는게 올바른일인지 궁금해서 질문드립니다.

  1. 상위분야를 ENUM으로 추가시키고 밑에 분야이름을 따로 써야 하나요?

  2. (분야에 ISSELECTED를 추가시키고)

  3. 전체를 눌렀을 때 하위분야가 모두 체크가 되는데 이거는 SQL로 다 해결이 가능한가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. hjun16님.

  1. 상위분야를 ENUM으로 추가시키고 밑에 분야이름을 따로 써야 하나요?

    • 상위분야를 ENUM으로 분리하는 것은 코드의 가독성과 유지보수를 위한 좋은 선택이 될 수 있습니다. ENUM을 사용하면 상위분야의 값을 정의하고 다른 곳에서 일관되게 사용할 수 있습니다. 다만, 하위분야를 ENUM 내에서 직접적으로 다루기에는 한계가 있을 수 있으므로, 상위분야는 ENUM으로, 그리고 하위분야는 별도의 테이블로 관리하는 것이 좋습니다.
  2. (분야에 ISSELECTED를 추가시키고)

    • 필터링을 위한 ISSELECTED 필드를 추가하여 선택된 상태를 관리하는 것도 하나의 방법입니다. 이를 통해 각 하위분야가 선택되었는지 여부를 쉽게 확인할 수 있습니다.
  3. 전체를 눌렀을 때 하위분야가 모두 체크가 되는데 이거는 SQL로 다 해결이 가능한가요?

    • SQL만으로 모든 하위분야를 체크할 수 있는 로직을 구현할 수는 있지만, UI와 서버 간의 상호작용이 필요합니다. 예를 들어, 전체가 선택될 때 프론트엔드에서 모든 하위분야에 대해 UPDATE 쿼리를 만들어 서버에 전송하는 방식으로 처리할 수 있습니다. SQL 쿼리 자체로도 UPDATE 문을 사용하여 여러 레코드의 ISSELECTED 필드를 동시에 변경할 수 있습니다.

위의 사항들이 도움이 되셨길 바랍니다. 추가 질문이 있으시면 언제든지 문의주세요.

출처:
- Spring Data JDBC - Reference Documentation v3.1.5
- Spring Boot Reference Documentation v3.1.5

hjun16님의 프로필 이미지
hjun16
질문자

감사합니다.

hjun16님의 프로필 이미지
hjun16

작성한 질문수

질문하기