2012-04-14 4 views
0

내 응용 프로그램에는 두 개의 테이블 인 사용자 및 프로필이 있습니다. 사용자에게는 프로필이 있고 프로필은 사용자에게 속합니다. 내가 이것을 한 이유는 테이블을 단순하게 유지하고 컨트롤러를 각각 작게 유지하기 위해서였습니다. UserController는 로그인을 처리하고 패스워드를 잊어 버렸으며 ProfileController는 편집, 프로필보기 등을 처리합니다.CakePHP : 별도의 테이블에있는 사용자 및 프로필

이제 다른 모델과 링크 할 때. 게시물이나 코멘트 또는 친구들 내가 딜레마에 빠졌습니다!

현재 user_id 외래 키를 통해 사용자에게 Posta와 Comments를 보낸 다음 쿼리에 포함되어있는 프로필 정보를 가져 오지만, 프로필 ID를 통해 친구로 연결됩니다.

그래서 더 나은 옵션은 무엇입니까? 프로필 ID를 통해 연결하는 것이 더 적절하고 미래에 사용자가 그룹이나 페이지 (Facebook을 생각하면)가 있으면 프로필에 연결된 항목과 무엇이 무엇인지 구분하는 것이 어려울 것입니다. 동일한 사용자의 그룹 또는 페이지에 연결되어 있습니다.

이것은 약간 열린 질문이지만, 다른 사람들이 생각, 특히 성능 및 코드 효율성을 공유 할 수 있다면 도움이 될만한 내용입니다.

+0

사용자 HasOne 프로필은 내 설정입니다. 사용자는 하나만 가질 수 있습니다. 그래서 당신이 두 개의 모델로 그들의 기능을 분리한다면 당신은 HasMany 관계를 만들어서는 안됩니다. 심지어 기본 키와 동일한 ID를 사용합니다 (프로필은 사용자의 프로필을 사용합니다). 이렇게하면 조인이 매우 간단하고 오버 헤드가 거의 없습니다. – mark

답변

3

프로필 ID를 사용하여 친구를 연결하는 것은 나에게 맞지 않습니다 (친구는 users 테이블에서 재귀 관계이므로).

+0

예. 계정보다는 친구 인 프로필입니까? 또한 사용자는 프로필뿐만 아니라 페이지 나 이벤트와 같은 다른 잠재적 인 개체에 대한 상위 계정입니다. – Cameron

+0

마일과 전적으로 동의합니다. – mark

+0

@mark 당신은 게시물에 대한 자신의 관계를 가질 수있는 사용자의 잠재적 인 '다른'객체에 대해 내가 말한 것을 토대로 왜 설명해야합니까? – Cameron

관련 문제