2011-03-31 2 views
0

현재 열 A와 열 B가있는 데이터베이스가 있습니다. 데이터를 가져 와서 A에서 B로 가장자리를 넣고 싶습니다. 그 문제는 없습니다. 문제는 많은 A가 1 B를 참조 할 수 있으며 내 그래프에 A가 중복되기를 원하지 않는다는 것입니다. 다음 문제를 어떻게 해결할 수 있습니까?데이터베이스 -> 그래프

저는 PHP + js를 사용하고 있습니다.

+0

이것은 매우 db 관련입니다. 어떤 데이터베이스를 사용합니까? SQL 또는 그래프? 두 경우 모두, 데이터를 추출하기위한 좋은 jQuery 라이브러리가 많이있다. 그래프로 그림을 생성하기위한 PHP-libs도 있습니다. 그것 이외에 그것은 당신이 의미하는 것을 말하기 어렵습니다. – Kebman

답변

0

귀하의 질문에 당신이 말한 방식이 매우 혼란 스럽습니다. "A에서 B로 가장자리를 넣으시겠습니까?" A가 중복되지 않는다면, 처음부터 데이터베이스에 중복 된 A 행이 들어가는 것을 원하지 않는다는 것을 의미합니까? 데이터베이스에 A가 중복되기를 원하지만 그 중 하나만 그래프에 표시하고 싶습니까? 색을 완전히 혼란스럽게합니다. 아마도 살아있는 예가 도움이 될만한 것을 파악하는 데 도움이됩니까?

+0

죄송합니다, 여기에 예입니다 셔츠 -> 바지 가방 -> 바지 신발 -> 양말 여기 , 셔츠와 가방 바지를 참조 모두. 나는 바지를위한 2 개의 분리 된 노드를 갖고 싶지 않습니다. 하나의 노드 바지로 향하는 가장자리가있는 2 개의 노드 (가방과 셔츠)가 있어야합니다. 내 예가 혼란을 없애기를 바란다 :) – user684992

0

매우 늦게 회신하지만 여전히. 일반적으로 포인터를 사용하면됩니다. PHP는 포인터를 가지고 있지만, 참조 패스라는 뭔가가되지 않습니다 예는 다음과 같이 보일 것이다 http://php.net/manual/en/language.references.pass.php

:

$shirt = new Node('shirt'); 
$pants = new Node('pants'); 
$bag = new Node('bag'); 

$shirt->relate_to($panths); 
$bag->relate_to($panths); 

class Node { 
    protected $type; 
    protected $relations; 

    public function relate_to(Node &$node) { 
    $this->relations[$node->id] = &$node; 
    } 
} 

을이이 같은 지시 관계를 만드는 것도 가능하다 :

public function relate(node &$from, node &$to){ 
      $tmp=new relationship($from, $to); 
      $from->relations[$to->id]=&$tmp; 
      $to->relations[$from->id]=&$tmp; 
    } 
관련 문제