2010-12-09 6 views
0

나는 두 개의 테이블, 게임 및 지역을 가진 데이터베이스를 가지고 있습니다. 내 목표는 게임의 각 지역에서 출시일을 추적하는 것입니다.일대일 관계/독특한 키 쌍

부여 된 영역은 자주 변경되지 않지만 게임의 각 영역마다 새로운 열을 만들거나 그 사이에 release_dates 테이블을 만드는 것이 더 좋을까요?

두 테이블 사이에 새 테이블을 만들면 각 지역/게임 쌍에 대해 하나의 릴리스 날짜 만 있으면 어떻게 될까요?

답변

3

나는 release_dates 테이블로 갈 것이다. 예를 들어, 특정 지역에서 릴리스가 나오지 않으면 게임 테이블에 NULL 값이 필요하지 않게됩니다. 당신의 release_dates 테이블에서

, 당신은 외부 키를 REGION_ID하고 외부 키를 GAME_ID, 다음 (GAME_ID, REGION_ID)를 release_dates 테이블에 대한 키 만들 수 있습니다. 이렇게하면 각 (game_id, region_id) 조합이 한 번만 표시됩니다.

+0

+1 cross-ref 테이블의 이름을 'games_regions'와 같은 이름으로 지정하면 테이블 이름이 혼란스러워하지 않고 나중에 추가 열을 추가 할 수 있습니다. 게다가, 그것은 cross-ref 테이블을 (games_x_regions와 함께) 명명하는 더 보편적 인 방법입니다. – webbiedave

+0

오, 좋아, 나는 당신이 그처럼 기본 키를 가질 수 있는지 몰랐다. 아주 멋지다. –

0

다 대다 관계입니다. game_id와 region_id가 들어있는 중간 접합 테이블이 올바른 해결책입니다.

관련 문제