2011-03-28 2 views
1

이 질문은 수 백만 번 질문되었지만 Kohana의 ORM 모듈에서 관계가 작동하는 방식을 잘 이해할 수는 없습니다. ratings, favorites, 지금Kohana ORM 관계 이해

approved_submissions 
    -submission_id 
    -contents 

favorites 
    -user_id 
    -submission_id 

ratings 
    -user_id 
    -submission_id 
    -rating 

users 
    -user_id 

votes 
    -user_id 
    -submission_id 
    -vote 

및이를 즐겨 찾기 사용자를 방지하기 위해 votes는 테이블의 모든 열을 구성하는 기본 키를 가지고 :

나는 5 개 테이블이 데이터베이스가 submission_id 여러 번, 사용자가 같은 submission_id 여러 번 등 투표. 나는 또한이 필드는 approved_submissionsusers을 참조하는 외래 키를 사용하여 각 필드에 잘못된 데이터가 존재하지 않도록 설정되어 있다고 생각합니다.

DB 모듈을 사용하여이 테이블을 액세스하고 업데이트 할 수 있습니다. ORM이 코드를 적게 사용하여 동일한 작업을 수행 할 수있는보다 강력하고 사용하기 쉬운 방법을 제공 할 수있는 것처럼 느껴집니다.

submission_id에서 투표하는 사용자를 어떻게 업데이트 할 수 있는지 보여줄 수 있습니까? 즐겨 찾기를 제거하는 사용자 submission_id? 사용자가 특정 등급에서 등급을 변경하는 경우 submission_id?

또한 데이터베이스 구조를 변경해야합니까, 그렇지 않으면 괜찮습니까?

답변

1

아마도 당신은 has_many_through 관계를 찾고있을 것입니다. 당신은 당신이 '돈 때문에 데이터베이스 테이블과 키 이름을 구조 조정하는 것이 좋습니다

그래서 새로운 제출을 추가, 당신은

$user->add('submissions', $submission); 

뭔가를 할 거라고 및

$user->remove('submissions', $submission); 

를 제거하려면 많은 구성 작업을 수행해야합니다.