나는 CakePHP 기반 웹 게임을 재미있게 만들기 위해서뿐만 아니라 연습용으로 만들려고 시도하지만, 장비 시스템을 알아 내려고 수수께끼에 빠져 있습니다.CakePHP에서 장비 시스템을 구현하는 방법
항목 유형 및 해당 항목에 대한 정보를 결정하는 정수 값을 포함하는 item_type 필드를 포함하여 항목에 대한 모든 가능한 정보를 포함하는 Items 테이블이 있습니다.
즉 item_type = '1'은 항목이 모자, 즉 전력, 가격, 보너스 및 요구 사항 만 필요한 정보라는 것을 의미합니다. 이 모든 것이 잘 작동합니다.
또한 각 플레이어의 현재 소유하고있는 항목을 모두 저장하기 위해 items_users HABTM 테이블이 설정되어 있는데, 이것도 정상적으로 작동합니다.
내가 알아 내려고하는 것은 장비 시스템이 어떻게 작동하는지입니다. 나는 처음과 같은 테이블을 갖추고있다 생각 :
CREATE TABLE `aevum_tf`.`equips` (
`id` INT NOT NULL ,
`user_id` INT NOT NULL ,
`hat_id` INT NOT NULL ,
`wep_id` INT NOT NULL ,
`offhand_id` INT NOT NULL ,
`pants_id` INT NOT NULL ,
`acca_id` INT NOT NULL ,
`accb_id` INT NOT NULL ,
`accc_id` INT NOT NULL ,
`shirt_id` INT NOT NULL ,
`created` DATETIME NOT NULL ,
`modified` DATETIME NOT NULL ,
PRIMARY KEY (`id`) ,
UNIQUE (
`user_id`
)
) ENGINE = InnoDB
이 CakePHP를이 모델에 대해 여러 외래 키를 지원하지 않는다는 것입니다 같은 시스템을 사용하는 유일한 문제.
그런 시스템을 구현하는 방법에 대한 아이디어가있는 사람이 있습니까?
EDIT 기존 HABTM items_users 테이블은 사용자가 현재 소유하고있는 항목을 저장하는 데 사용됩니다. 사용자가 새 항목을 가져올 때마다 ID는 id이고 사용자 ID는 items_users 테이블에 저장됩니다. 저는 장비 시스템을 구현하는 방법을 알아 내려고하고 있습니다.
By는 여러 개의 외래 키를 지원하지 않으므로 CakePHP는 기본적으로 다른 테이블의 한 테이블에서 여러 개의 외래 키를 지원하지 않습니다. 내 예제 equips 테이블은 모두 item_id를 가리키는 8 개의 외래 키를 가지고있다.
은 다음을 참조하십시오 https://trac.cakephp.org/ticket/1923
"여러 개의 외래 키를 지원하지 않습니다"를 명확히하십시오. 원하는만큼 많은 외래 키를 가질 수 있습니다. 아마도 HABTM 테이블에 없을 것입니다. – deceze