데이터 베이스 질문입니다.
모든 다대다 관계를 하나의 테이블에서 관리하려고합니다
현업에서 이렇게 하기도하나요?
이렇게해도 상관없겠죠?
테이블명 : many-many
`kind` varchar(255) NOT NULL,
`id1` INT UNSIGNED NOT NULL,
`id2` INT UNSIGNED NOT NULL,
product와 category 테이블간에 다대다 데이터를 넣은다치면
kind에 category-product
id1에 {category_id}
id2에 {product_id}
이런식으로 넣어주려고합니다
Kind는 왜 쓰는거임?
관계맺는 타겟을 명시하려고?
위에 쓴 댓글이 맞다는 가정하에, A와 B 다대다 관계를 맺으려면 A와 B관계를 표현하는 테이블 하나를 만들어주고, A와 C의 다대다 관계를 표현하는 테이블을 따로 생성하는게 맞을껄
ㅇㅇ 타겟 명시 , 저거하나로 a와b도 관계맺고 c와d도 관계맺계하려고
쩃든 모든 관계를 저거하나로 함 ㄱㅊ?
갠적으루 별로 안괜찮아보임. 정규화원칙에 위배되는거였나 뭐때문인진 기억안나는데 저러면 매번 조인할때마다 짱날거같은데
조인그냥 and kind="" 더붙이면되는디
딴사람 의견도 들어보고싶은데 무관심인가벼
https://dba.stackexchange.com/questions/145073/many-many-relation-with-specific-type
난 외래키 아이에 안쓰니까 걍 테이블하나로 비벼야겟다
모든 다대다를? 당연히 안될거 같은데...
저거 외래키 설정을 어떻게 할건데?
kind 타입을 enum으로 해야겟군
왜래키 안쓴다구
어.. 외래키를 안쓰면 맘대로 하셈..
ㅇㅋ;;
어떤 상황인지는 모르겠는데 토이프로젝트면 상관없는데 현업에서는 가급적이면 kind 빼는게 좋다. 요즘처럼 마이크로 서비스 별로 물리적 저장소를 분리하는 상황에서 여러 도메인의 관계가 하나에 담겨있으면 문제가 되기 때문이야. 이건 Business Component도 마찬가지고.. 테이블을 논리적으로 분할해서 다른 로직에서 테이블에 접근하는 것에 제약을 검. 뭐 말은 길었는데 kind 빼는게 좋아.
ㄴ알겠뜸 뺄꼐용~