2013-03-30 2 views
0

데이터베이스에는 사용자 이름 테이블이 있으며 관할 구역 테이블이 있습니다. 또한 하나 이상의 관할 지역에 사용자를 지정하기위한 중간 테이블이 있습니다.Mysql 중급 테이블 - 반복되는 행이 있습니까?

user table 
-------------- 
userID 
first_name 
jurID 

jurisdiction table 
----------------- 
jurId 
region 

user_jurisdiction 
------------------ 
userID 
jurID 

이 같은 이어질 것 : 1 개 이상의 관할권이있는 사용자의 경우

user_jurisdiction 
    +--------+-------+ 
    | userID | jurID | 
    +--------+-------+ 
    |  6 |  2 | 
    |  6 |  3 | 
    |  11 |  2 | 
    |  12 |  1 | 
    +--------+-------+ 

,이 userdID 행을 반복 한 것이 괜찮을까요? 또는 여분의 JurID 열을 가지고 사용하지 않을 경우 null로 설정하는 것이 더 좋을까요? 예를 들면 : 당신이 사용자와 국가 사이의 다 대다 관계를 가지고 있기 때문에

user_jurisdiction 
+--------+-------++--------+-------+ 
| userID | jurID | jurID | jurID | 
+--------+-------++--------+-------+ 
|  6 |  2 |  3| null| 
|  11 |  2 | null| null| 
|  12 |  1 | null| null| 
+--------+-------+--------+--------+ 

답변

1

당신은 user_jurisdiction 테이블이 있습니다.

그래서, 단일 사용자에 대해 user_jurisdiction에서 여러 행이, 관할 당 하나의 행 : 귀하의 예를 들어

6 2 
6 3 
11 2 
12 1 

.

또한 자동 증가 UserJurisdictionId을 해당 테이블에 포함해야합니다. 모든 테이블에 기본 키가있는 것이 좋습니다.

user.jurIDuser 표에서 제거 할 수 있습니다. 관할 구역에 관한 모든 정보는 user_jurisdictions이어야합니다. 특정 사용자에 대한 관할 구역 정보를 얻으려면 join을 사용하십시오.

관련 문제