MelRanG
729
2021-08-21 21:04:39 작성 2021-08-21 21:07:49 수정됨
3
227

스프링부트 테이블설계 및 서비스, dto관련 질문드립니다


안녕하십니까 부트책을 읽고 실습후 프로젝트를 진행하고 있습니다.

그래서 테이블 설계와 서비스, dto클래스 관련 몇가지 궁금증이 있습니다.


-사용자에게 선호제품 비선호제품을 복수형으로 입력받습니다.

ex) 선호제품: 삼성티비, 엘지티비

      비선호제품: 애플, 샤오미

이렇게 한번에 입력을 받은 후 선호제품테이블과 비선호제품 테이블을 만들어서

유저명, 선호제품, 제품이미지 테이블과 유저명 비선호제품 제품이미지

이렇게 두 개의 테이블을 만든 후 처리를 하는데 중복 데이터가 존재해서 DB정규화를 진행해야하는지 궁금증이 생겼습니다.


유저명 선호제품 이미지링크

-aaaa    삼성          링크~~

-aaaa    엘지            링크~~

-bbb      엘지            링크~~

-bbb      애플            링크~~~


이런식으로 엘지와 링크가 중복이 발생합니다. 비선호 테이블에도 저것과 거의 같은 내용이 또다시 들어갑니다.

그래서 제품id, 제품명, 이미지 가 있는 제품테이블과

유저명 제품id 선호여부 가 존재하는 선호제품 테이블로 분할을 진행하려 했는데 이렇게 분할해도 유저가 다르면 제품id와 선호여부가 중복이 발생합니다.


이 테이블의 정규화를 진행해야하는지, 해야한다면 어떤식으로 해야하는지 조언 좀 구할 수 있을까요..



추가로 선호제품, 비선호제품으로 진행한다면 내용이 비슷하더라도 클래스는 전부 새로 만들어서 처리하는지(선호제품saveDto와 비선호제품saveDto...), 아니면 한 클래스안에서 같이 처리하는지 궁금합니다.

0
  • 답변 3

  • 행복하자!!
    273
    2021-08-21 22:15:57 작성 2021-08-21 22:23:38 수정됨

    누가 어떤 제품을 선택했는지 알아야해서 제품에 대한id와 사용자id는 필수적인 요소인거 같습니다

    이건 어떤 상황인지 봐야합니다. 쿼리 직접 생성해서 넣는거면 옵션으로 줄 수도 있는거고 그게 아니면 따로 만들겠져 


  • yeori
    3k
    2021-08-22 02:42:59

    이 질문에서 중요한건

    선호 비선호 데이터를 모아서
    무엇을 하고 싶은건지

    ..입니다.

    그러니까, 저런 데이터를 모아서 어떤 정보를 얻고 싶은건지에 대한 목적이 있어야 모델링 방향을 정리할 수 있습니다.


  • MelRanG
    729
    2021-08-22 13:47:50

    아하 감사합니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.