2014-01-24 1 views
-2

멀티 플레이어 게임을위한 대량의 데이터를 저장하는 가장 좋은 방법은 로그인 정보 및 연락처 세부 정보와 같은 중요한 정보를 저장하는 데이터베이스가 있지만 인벤토리 항목 및 업적을 기록 할 때 막혔습니다. 나는 데이터베이스에 상당히 익숙하다. 내가 생각할 수있는 유일한 해결책은 각 개별 아이템에 대한 ID를 생성하고 플레이어가 가진 아이템 ID를 저장하거나 각 아이템/업적에 대해 테이블에 컬럼을 생성하는 것이다. 게임에 수집 가능한 카드 요소가있을 수 있으며 계정에 소유하고있는 카드 번호 을 저장하는 솔루션이 필요합니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까?많은 양의 데이터베이스 정보 (예 : mySql 데이터베이스의 업적/수집품)

편집 : 구체적으로 카드로 설명하겠습니다. 게임에 300 개의 고유 카드가 포함되어 있고 플레이어가 게임을하는 동안 플레이어가 카드를 수집한다고 가정 할 때 플레이어가 소유 한 카드의 데이터를 저장하는 방법은 무엇입니까? Baring은 카드가 선형 방식으로 수집되지 않는다는 것을 명심하십시오. 각 카드의 사본을 여러 개 가질 수 있습니다.

편집 2 : 데이터베이스가 각 카드에 정보를 저장할 필요가 없다는 혼란을 피하기 위해, 단지 로그인 할 때 아이템을 잠금 해제하기 위해 PHP를 통해 액세스 할 수있는 ID를 저장해야합니다.

+0

좀 더 구체적으로 기재 할 수 있습니까? 다른 솔루션이 많이 있지만, 당신이하려는 일에 대해 더 잘 이해하면 가장 쉽게 선택할 수 있습니다. –

+0

자세한 내용으로 수정되었습니다. – user3232756

+0

"큰 금액"은 몇 십억의 업적입니까? – TomTom

답변

1

many-to-many 관계 (여러 개일 수도 있음)를 말하는 것 같습니다.

당신이 많은 유형이있는 경우는,

Achievements 
-------- 
achievement_id, description, type, 

을 추가하고

Player_achievements 
-------- 
player_id, achievement_id 

복잡성의 수준에 따라 함께 그들을 묶어 싶은 당신이

Players 
-------- 
player_id, name, etc etc 

을 가정 , 당신은 유형 조회 테이블 (카드, 업적, 소장품 등)을 원할 수 있습니다. 각각의 데이터가 서로 다른 경우 자체 테이블에 포함됩니다.

편집 : 편집을 보았을 때 ID를 데이터베이스에 저장하고 PHP 카드에있는 300 개의 카드와 관련된 정보를 유지할 수 있다고 언급 했습니까? 아니, 그렇게하지 않을거야. 나는 카드 정보와 모든 규칙/능력/데이터베이스의 내용을 저장합니다. 그런 다음 코드를 변경하지 않고도 추가, 변경 등을 수행 할 수 있습니다. 같은 : 당신은 플레이어가 다수있을 수 있습니다 언급 이후

Cards 
-------- 
card_id, description, bonus, damage, damage_type, i_have_no_idea, im_making_these_up 

을 내가 player_cards에 수량을 추가

Player_cards 
-------- 
player_id, card_id, quantity 

주와 함께 묶어.

+0

어떻게 내가 ID를 저장하는 것이 하나의 계정은 최대 300 개의 ID를 가질 수 있기 때문에 MySql에 익숙하지만 모든 ID를 저장하고 액세스 할 수 있기 때문에 플레이어 세부 정보를 카드 하나에 대해 두 개의 테이블을 만들지 만 어떻게 저장합니까? 실제 ID는 플레이어가 300 개의 열을 만들지 않고 소유합니다. – user3232756

+0

그것이 내가 설명한 세 번째 테이블입니다. player_id와 card_id를 가지고 있기 때문에 특정 플레이어는 각 카드 당 하나씩 해당 테이블에 300 개의 레코드를 가질 수 있습니다. 그리고 player_id = 어디에서 player_cards의 select card_id를 사용하여 모두 얻을 수 있습니까? ' –

관련 문제