개발자

DB에서 Group과 User 테이블의 관계

2024년 03월 19일조회 134

group에서 user의 아이디를 받아 저장하는데, group에서 user를 찾는 건 쉽지만, user가 속한 group을 찾는데에는 어려움이 있을 거 같습니다. user 테이블에 group의 갯수를 제한해서 받는 것이 나을지, 다른 방법이 있는지 알려주세요! join도 생각해봤는데, 데이터양이 너무 많아질 거 같아서 고민입니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

ㄱㅎㅁ님의 프로필 사진

group에 user_id가 왜 있을까요? group table이 실제로는 group_user 에 대한 table인건지? group_user table에 대한거라면, user_id에 index를 걸고 join을 하시면 될거 같고, group table이라면 group_user라는 별도의 table을 만드시는건 어떨까요?

나정님의 프로필 사진

나정

작성자

상명대 공대2024년 03월 19일

앗 제 설명이 부족했네여! 초대 코드를 만들어서 그룹을 생성할 때 유저가 멘토이고, 그룹에 들어온 유저가 멘티로 구상하고 있습니다! 제가 생각했을 때는, group 안의 구성원이 누가 있나를 저장하기 위하여 group table에 user_id를 추가했습니다. group_user라는 별도의 table을 만들 때에는 어떤 식으로 구상하는 게 좋을지 조언 부탁드립니다! 답변 정말 감사합니다!

ㄱㅎㅁ님의 프로필 사진

ㄱㅎㅁ

백엔드 개발자2024년 03월 19일

group table에는 group에 대한 내용만 있고 group_user table에는 pk, group_id, user_id, reg_dt .... 와 같이 group과 user의 join 테이블로 활용하며, index를 group_id 와 user_id에 대해 각각 만들어주면 될꺼같습니다. 그래서 group에 어떤 사용자가 있는지는 group, left join group_user, inner join user을 하고 (user_id만 필요하다면 group, group_user 까지만 join) 어떤 user가 어떤 group에 있냐는건 user, left join group_user, inner join group을 하면 될것 같습니다.

나정님의 프로필 사진

나정

작성자

상명대 공대2024년 03월 19일

답변 감사합니다!! 이해했어요! 😃

ccat님의 프로필 사진

group_id / mentor_id / mentee_id 이런식으로 그룹디비를 생성하시고 Onetomany manytoone을 걸어주신 후에 mentee_id에서 걸려있는 group을 조회를 하면 user가 속한 group을 쉽게 찾을수 있을겁니다

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!