2015-02-06 2 views
0

여러 개의 동일한 참조를 테이블 구조에 맞추는 방법은 무엇입니까? 내가 어떻게 할 수 있니? 예 : 나는 동급생 목록을 가지고 있습니다 :여러 개의 동일한 참조를 테이블 구조에 맞추는 방법은 무엇입니까?

1 Peter 
2 Jack 
3 John 
4 Mary 
5 Birgit 
6 Stella 
7 Janus 
8 Margo 
9 Fred 

이제 동호회를 정의하고 싶습니다. 우선, 모든 아이들이 하나의 친교에 속할 수 있다고 제한하십시오. 그래서 우리는 3 개의 동호회를 가질 수 있습니다 :

[Peter, Jack] 
[John, Mary, Birgit] 
[Stella, Janus, Margo, Fred] 

모든 구성원은 동일하므로 다른 구성원을 참조해야합니다. 쌍의 테이블을 갖는 것보다 그러한 관계를 정의하는 더 좋은 방법이 있습니까? 같은 쌍의 테이블을 사용하여

1 2 
3 4 
3 5 
4 5 
4 3 
5 3 
5 4 
6 7 
6 8 
6 9 
7 6 
7 8 
7 9 
8 6 
8 7 
8 9 
9 6 
9 7 
9 8 

경우,이 관계를 모두 방법 (위 등)을 설명하는 것이 좋습니다, 또는 그냥 하나의 방법에서 다른 링크를 가지고 충분하다? 두 가지 방법의 이점은 무엇입니까?

쌍 테이블은 회원을 단 하나의 휄로우 십으로 제한하지 않지만 어떻게 가능합니까?

SQL 테이블 솔루션을 찾고 있었지만 이러한 데이터 구조를 처리하기위한 더 나은 도구가있을 수 있으므로 nosql 태그도 추가했습니다. 나는 그러한 데이터를위한 올바른 도구를 찾고 있지만 SQL 테이블에도이 방법을 알기를 열망한다.

답변

1

네, 다른 방법이 있습니다. "동호회"가 있다면, 당신은 쌍의 관계를 갖지 않습니다. FellowshipsId이있는 Fellowships 테이블로 시작하십시오.

그러면 FellowshipsKids 테이블이 있습니다. 이것은 접합점 테이블이라고 불리며, 각 휄로우 십의 각 구성원마다 한 행을 갖습니다. 그것은이 같은 행에 표시됩니다 : 당신은 무엇을 가지고하는 장학금과 아이들 사이의 m-N 관계가

FellowshipId KidId 
    1   1 
    1   2 
    2   3 
    2   4 
    2   5 
    . . . 

- 하나의 교제가 여러 아이를 가질 수 있습니다, 하나 아이들은 여러 동호회에있을 수 있습니다. junction 테이블은 관계형 데이터베이스에서이를 표현하기위한 표준 f}입니다.

+0

물론, 내가 특별히 친목을 도모 할 필요가 없더라도, 여기서는 도우미 테이블로 잘 작동합니다. 간단하고 효과적입니다. 고맙습니다! –

관련 문제