2017-05-09 1 views
0

나는 모든 플레이어를 저장하는 테이블을 가지고있는 판타지 풋볼 애플리케이션을 만들고 있습니다. 나는 아래와 같이 테이블을 디자인했다. 지금까지 시스템은 4-4-2의 골키퍼가있는 곳에서 작동합니다. 한 수비수가 나오고 한 포워드가 나왔고, 벤치에있는 선수들과 함께 선수들을 바꾸는 것이 쉬울 것입니다.MySQL 데이터베이스 디자인

enter image description here

난 3-5-2, 5-4-1 등의 다수의 형성을 갖고 싶어 등등, 나는 데이터베이스에이를 저장하는 방법을 모르기 때문에 문제가 온다

때와 지금 누군가가 변경된 팀을 볼 때 그는 포메이션이 3-5-2 일 때 예를 들어 2 명의 수비수를 볼 수 있습니다. 나는 이미 자바 스크립트를 사용하여 프론트 엔드를 달성했다. 문제는 백엔드이다. 옵션이 없어지면 도움을받을 수 있습니다.

+1

나는 당신이 원하는 것을 정확히 모르겠지만, 좋은 시작은 형성을위한 별도의 테이블을 만드는 것일 수 있습니다. 그런 다음 프런트 엔드 코드를 사용하여 선택할 수있는 구성을 제한하십시오. – Noceo

+0

안녕하세요, 도움을 주셔서 감사합니다. 의미가 있지만, 형성을위한 별도의 테이블이 있다면 벤치에있는 플레이어를 어떻게 알 수 있습니까? 그것은 내가 벤치에서 플레이어로 GK2, DEF5, MID5 및 FWD3를 보면서 쉽게 자리 잡을 수있는 4-4-2 포메이션 인 경우 가장 큰 도전입니다. – bobin56

+0

흠, 왜 '포지션을 결정하지 않습니까? 'GK1, GK2, DEF1, DEF2 등이 포함 된 테이블과 축구 선수를위한 하나의 테이블은 피봇 테이블 (다 대다 관계)을 만들어 위치와 선수 테이블을 관련 짓습니까? '벤치'플레이어에 관해서는 Bench1, Bench2와 같은 특별한 '위치'에 넣어야 했습니까? –

답변

0

가능한 솔루션은 다음 표

user 
id | team_name | current_formation_id 
1 | Masaki | 1 
2 | Other  | 3 

formation 
id | desc | defenders_count | midfielders_count | forwarders_count 
1 | 442 | 4    | 4     | 2 
1 | 433 | 4    | 3     | 3 
1 | 352 | 3    | 5     | 2 

player 
id | name | role | whatever_else 
1 | P1 | MID | ... 
2 | P2 | DEF | ... 
3 | P3 | FWD | ... 

user_roster 
user_id | player_id | is_on_field 
     1 |   1 | 1 
     1 |   2 | 0 
     1 |   3 | 1 

당신은 테이블 구조를 변경하지 않고 형성을 변경하는 유연성을 가질 수있는이 방법을 사용할 수있다, 당신은 선수가 벤치에있는 간단한 쿼리로 알 수 또한 현재 플레이어가 현재 포메이션 카운트를 존중하는지 쉽게 확인할 수 있습니다.

+0

안녕하세요, 고맙습니다. 아마도 내가 뭘 찾고 있었는지 :-) – bobin56

관련 문제