2011-12-06 2 views
0

사이의 관계를 만드는 :MySQL이 테이블

*******awards 
    ---------------------- 
    aid | position | name 
    ---------------------- 
    1  1  best game 
    2  2  reached 100 points 
    3  3  reached 300 points 
    ................ 
    1000 800  logged_3_days_in_a_row 

    *******users 
    ---------------------- 
    uid | name 
    ---------------------- 
    1 Niki 
    2 Lulu33 
    3 BadGirl 
    ....... 
    1001 Zelda2012 

시상식 테이블과 사용자 사이의 관계를 만들 수있는 가장 좋은 방법은 무엇입니까? 물론 user_has_awards 테이블을 만들 수는 있지만, 이것이 최선의 방법 (1000 개 이상의 상과 1000 명의 사용자가있는 경우)이 수행 할 수 있는지 확실하지 않습니다.

답변

2

설정하려는 관계 유형에 따라 다릅니다. 귀하의 질문에서 나는 다 대다 관계를 의미한다고 생각합니다 (즉, 동일한 상을 많은 사용자에게 부여 할 수 있고 사용자에게는 많은 상을 줄 수 있음). 이를 모델링하는 가장 좋은 방법은 실제로 사용자와 수상자 간의 관계를 관리하는 세 번째 테이블입니다. http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php

PS :

는 예를 들어 디자인 패턴을 설명하는이 사이트를 참조하십시오. 사람들이 귀하의 질문에 대답하도록 격려하기 위해 귀하의 질문에 대한 응답 중 일부를 받기 시작해야합니다.

+0

.. 외래 키를 추가하면 성능 및 데이터 무결성이 향상됩니다. – konsolenfreddy