2009-11-26 3 views
1

나는 CakePHP's conventions과 일치하도록 사물의 이름을 자유롭게 바꿀 수있는 기존 데이터 모델을 가지고 있습니다. 나는 한 노드가 임의의 수의 자식 노드와 임의의 수의 부모 노드 (단방향 관계)를 가질 수있는 일종의 그래프 노드를 가지고있다.CakePHP의 자체 참조 ManyToMany 대회

여기 CakePHP의 표기 규칙에 따라, 노드의 테이블의 :

Table: nodes 
Column: node_id (INT) 
Column: description (TEXT) 

내 질문은 조인 테이블과 같아야 무엇인가?

Table: nodes_nodes 
Column: parent_node_id (INT) 
Column: child_node_id (INT) 

그리고 문서가 무엇을 의미하는지는해야한다 : 여기 지금 모습입니다

Table: nodes_nodes 
Column: node_id (INT) 
Column: node_id (INT) 

공지 사항이 해당 열 이름은 분명히 작동하지 않습니다, 이는 동일합니다. 이 두 열을 무엇이라고 부르겠습니까? 아니면 CakePHP의 규칙이 설정없이이 상황을 처리 할 수 ​​없습니까?

답변

3

neilcrookes가 지적했듯이 CakePHP에서 이것을 수행하는 방법에 대한 웹의 기사가 있습니다. Here은 User HABTM User (친구)를 예로 사용하여 그 중 하나입니다.

링크 된 기사에서 모델에 페이지 매김을하지 않을 경우 User 클래스 정의 이후의 모든 내용을 무시할 수 있습니다.

+0

이것은 확실히 문제를 해결하는 데 도움이됩니다. 그래도 이걸 실행하기 전에 원래 디자인에 다시 질문 할 것입니다. ;) 감사! – Dolph

1

노드에 자식 노드가있는 경우 해당 자식 노드는 자동으로 첫 번째 노드를 부모 노드로 설정합니까?

이 관계는 소셜 네트워크에서 일반적인 '친구'개념을 상징하는 사용자 대 사용자 관계와 유사 할 수 있습니다. 도움이되는지 확인하려면 사용자/친구 데이터 모델에 대해 Google을 제안하십시오.

+0

질문에 대답하려면 예. 그러나 우정 모델과 달리 역방향 관계는 허용되지 않습니다. 즉, 노드 수에 관계없이 순환 관계를 가질 수 없습니다. 노드의 하위 노드는 첫 번째 노드의 부모 일 수 없습니다. – Dolph