2012-08-14 5 views
0
class Games{ 
    var $has_many = array('gameSetting','team','log'); 
} 

class GameSetting {} 

class Team{ 
    var $has_many = array('user','log'); 
} 
class User { 
    var $has_many = array('log'); 
} 

class Log { 
} 

공식 문서에 따르면, 결합 테이블을 사용하여 _id 접미사를 외래 키로 만들어야합니다. 로그 테이블에는 game_id, team_id, user_id라는 3 개의 외부 키가 있습니다.Datamapper + Codeiginter에서 필드를 1 대 다수로 지명하는 방법

FK 열의 이름과 Datamapper가 어떤 FK가 동일한 접미사 _id를 가진 테이블을 참조하는지 어떻게 알 수 있습니까?

답변

1

우선 관계가 올바르게 구성되어 있는지 확인해야합니다. 이는 에 관계를 정의하는 것을 의미합니다. 관련 모델은입니다 (http://datamapper.wanwizard.eu/pages/settingrelations.html).

그래서 로그 모델은 다음과 같아야합니다

class Log extends DataMapper { 
    var $has_one = array('game','team','user'); 
} 

로그 표는 단순히 열 'GAME_ID', 'team_id'와 'USER_ID를'필요 - DataMapper는 곳으로 찾아야하는지 알 것이다 관련 객체를 채 웁니다.

문서에 모두 설명되어 있습니다 ('In-Table Foreign Keys'아래를보십시오) : http://datamapper.wanwizard.eu/pages/database.html