N 대 N 모델을 표현하는 방법

N 대 N 모델이란?



여러 모델 A와 여러 모델 B가 연결되어 있는 데이터 설계입니다. 즉 복수 대 복수.



예를 들어, 사용자와 프로젝트의 관계를 합시다.

사용자 측에서 본 경우


  • 사용자 A는 프로젝트 1과 프로젝트 2에 연결됩니다
  • 사용자 B는 프로젝트 1과 프로젝트 2에 연결됩니다
  • 사용자 C는 프로젝트 2와 프로젝트 3에 연결됩니다

  • 같은 느낌입니다.

    프로젝트측에서 본 경우


  • 프로젝트 1은 사용자 A와 사용자 B에 연결됩니다
  • 프로젝트 2는 사용자 A와 사용자 B와 사용자 C에 연결됩니다
  • 프로젝트 3은 사용자 C에 연결됩니다

  • 같은 느낌입니다.

    참고도





    데이터베이스에서 어떻게 표현하는지



    1대1 또는 1대N의 경우



    일대일 또는 일대 N의 경우 한 테이블에 외래 키를 넣습니다.



    한 사용자는 한 그룹에만 속할 수 있는 N대1 관계는 다음과 같은 느낌입니다.

    그룹 테이블




    id
    이름


    1
    group1

    2
    group2

    3
    group3


    사용자 테이블




    id
    이름
    group_id (외부 키)


    1
    user1
    2

    2
    user2
    2

    3
    user3
    3

    4
    user4
    1


    N 대 N의 경우



    중간 테이블을 만들고 중간 테이블 측에 두 모델의 외래 키를 넣습니다.



    1명의 사용자는 몇몇 프로젝트에 속할 수 있다. 또한 하나의 프로젝트에 여러 사용자가 속한 경우.

    프로젝트 테이블




    id
    이름


    1
    project1

    2
    project2

    3
    project3


    사용자 테이블




    id
    이름


    1
    userA

    2
    userB

    3
    userC


    UserProject 테이블




    user_id (외부 키)
    project_id (외부 키)


    1
    1

    1
    2

    2
    1

    2
    2

    3
    2

    3
    3


    참고도



    좋은 웹페이지 즐겨찾기