2013-06-13 2 views
0

나는 몇 가지 다른 유형의 데이터 또는 모델을 사용하여 Kohana 3.3에서 간단한 crud 어플리케이션을 사용합니다. 의 말을하자 그 모델은 다음과 같습니다Kohana 3.3 테이블 구조

  • 사용자
  • 위치는
  • 기술

내가 그 모델의 각 테이블이 있지만 테이블이 어떤 식 으로든 서로 관련이없는 . ORM과의 관계를 정의하려고 시도했지만 여전히 혼란 스럽습니다. 예 :

나는 많은 위치를 가지고 있습니다. 각 위치에는 많은 사용자가 있습니다. 내가 알고있는 것처럼

class Model_Location extends ORM { 

    /** 
    * A location has many users 
    * 
    * @var array Relationships 
    */ 
    protected $_has_many = array(
     'users' => array('model' => 'user'), 
    ); 

} 

, 나는 사용자 테이블의 행에서 부모 위치의 ID를 참조하여이 둘을 연결할 수 있습니다

는 내가 가진 것을 정의 할 수 있습니다 알고 있습니다. 그러나 각 사용자가 여러 위치에 속할 수 있다면 어떨까요? 직렬화 된 데이터를 외래 키에 저장해야합니까? "룩업 테이블"을 만들어야합니까? 그렇다면 어떻게 보이게 될까요?

예를 들어 데이터베이스에 위치와 연결된 모든 사용자를 쿼리 할 수 ​​있습니까? ORM은 이런 종류의 작업에 사용할 올바른 기술입니까?

답변

2

docs을보고 through 매개 변수를 찾고 있습니다. user_idlocation_id (모두는 물론, 인덱스)

그리고 모델의 :

protected $_has_many = array(
    'users' => array(
     'model' => 'user' 
     'through' => 'users_locations', 
    ), 
); 

당신은 두 모델 모두

테이블 users_locations, 필드의 ID를 저장하는 별도의 테이블이 필요

그리고 그 반대로 사용자 모델 :

protected $_has_many = array(
    'locations' => array(
     'model' => 'location' 
     'through' => 'users_locations', 
    ), 
); 
+0

아 맞아, 고마워. –

관련 문제