2012-07-26 4 views
0

카드 게임의 정보로 구성된 데이터베이스를 모델링, 분석 및 생성하려고합니다. 게임의 각 라운드에는 ID, 타임 스탬프 및 4 명 이상의 플레이어가 있습니다 (일반적으로 4 명). 나는 세트의 속성으로 플레이어 테이블을 정의했다. 그러나 각 라운드마다 4 명의 플레이어가 있기 때문에 어떻게 라운드와 플레이어 간의 관계를 효율적으로 구현합니까?'객체'간의 데이터베이스 모델링 관계

기본적으로 각 라운드는 동일한 속성 (값이 다른)을 가진 4 명의 플레이어가 있습니다. 내 '객체'를 독립적이고 캡슐화 된 상태로 유지하기 위해 플레이어 테이블에 대한 링크가 필요하기 때문에 각 플레이어에 대해 하나의 속성 (열)을 갖는 것이 이상하게 보일 것입니다. 라운드와 4 명의 플레이어 간의 일대일 관계입니까?

내 모델을 종이에 그릴 때 계층 구조와 비슷해 보입니다. 예를 들어, 나는 의 플레이어와 각 플레이어 이 있으며, 핸드는입니다. 이것은 관계형 모델, 계층 형 모델, 객체 모델 또는 다른 것입니까?

또한 이 작업을 SQL로 수행 할 수 있습니까? 만약 내가 사용하지 않으면? 모든 경험이 SQL의 관계형 데이터베이스와 관련되어 있기 때문에 도움이나 제안을 많이 보내 주시면 감사하겠습니다.

감사합니다.

답변

1

기본적으로

Round          Player 
------------        ----------------- 

round_id player_id others_attri  player_id info_attributes 

그런 다음, 각 라운드, 당신은 라운드 어디 플레이어 1,2,3,4 ID 1과 동일한 ID와 각 플레이어 ID, 예제, 라운드 스토리지 4 개 행을 필요 에 있습니다.

Round    Player 
-----------   ----------- 
1 1 date    1 
1 2 date    2 
1 3 date    3 
1 4 date    4 

player_id는 player_id에 대한 foraign 키입니다.

당신이 저장 날짜 여러 번 싶지 않는 경우 또는 수행한다 :

Round      player_play      Player 
---------     ------------    ----------------- 

round_id info_attributes round_id player_id  player_id info_attributes 



Round   player_play    Player 
-------   -----------   ----------- 
1 date   1 1     1 
       1 2     2 
       1 3     3 
       1 4     4