해결된 질문
작성
·
311
0
안녕하세요. 강사님. 수업 잘 듣고 있습니다.
제가 고민하던 부분과 연결시키면서 수업 듣고 있었는데 아직 고민이 되어 의견을 여쭤보고 싶어 질문 드립니다.
상품 테이블은 이미 있고 그 상품을 검색하는 해시태그(#) 검색 기능을 추가하기 위한 테이블 추가가 필요합니다.
기능은
1) 해시태그로 해당 해시태그가 등록된 상품을 검색 가능해야 합니다.
2) 상품별 해시태그도 알 수 있어야 합니다.
테이블 구성이 1:M 과 M:N 중에 고민이 됩니다.
상품과 태그는 1:M 수업에서 예로 들어주셨던 책-목차 처럼 '상품별 태그' 로 표현 가능하고 선천적으로 부모 자식 관계 같기도 하면서,
비지니스 관계처럼 '태그로 상품을 검색한다.' 가 표현이 됩니다.
하나의 상품이 여러 해시태그를 가질 수 있고, 하나의 해시태그도 여러 상품에 해당될 수 있으니 M:N 이 더 맞다고 생각이 들고 이렇게 진행하려는데
1:M 도 가능하지 않나 라는 의문이 남아서요.
1 테이블이 상품 테이블이면 M 테이블에서 컬럼을 상품ID(FK,PK), 해시태그(PK) 두개로 하면 기능적으로 다 가능합니다.
이런 경우는 1:M, M:N 중에 어떤 것이 더 나은 방향인지를 선택하는 기준이 있을까요?
답변 2
0
네. 1:M 과 M:N 이 두가지 다 가능할 때는 비지니스 관계로 관리할 만한 가치가 있는 기능인지의 판단이 필요하다는 말씀이시지요?
계속 고민했는데 명확하게 답이 되었습니다. 감사합니다.
0
1:M과 M:N은 차이가 많아요.M:N은 관계테이블을 갖죠. 저는 그것을 비즈니스 관계라고 말해요.비즈니스는 그. 테이블이 무언가를 한다는. 의미예요. 해시태그를 보면 1:M관계로 충분히 사용가능자죠. 그걸 M:N관계로 만들어도 돌아는 가지만 관계테이블이 하는 일이 없어요. M:N은 관리가 힘든데 그렇게 노력한 대가가 없어보입니다.
따라서 1:M으로 되는 경 우, 궂이 M:N으로 일을 키울 필요는 없습니다