2011-05-16 2 views
3

나는 내 시스템에 대한 필요가있다 :
1) 친구 - 최대 N도까지 사용자 간의 거리를 계산하고, 사용자간에 공통적 인 업무 관련 항목을 찾아야한다. 이 onmysql을 잘 확장 할 수 없습니다. 그래서 선택의 여지가 그래프 데이터베이스입니다?문서 및 그래프 데이터베이스 선택

2) 사용자 프로필 필드가 약 120 필드이고 그 중 80 %가 1 : M 필드이므로 mysql에서 1 : M을 저장할 약 96 개의 테이블을 의미합니다. 모든 사용자 정보를 가져와야하는 경우이 모든 테이블에 도달해야합니다. 따라서 여기의 솔루션은 문서 데이터베이스, colunm 데이터베이스 또는 키 값 데이터베이스입니까?

현재 문서 및 그래프 데이터베이스로 작동 할 수있는 OrientDB를 보았습니다. 위의 요구 사항에 사용할 수 있습니까? 아니면 더 나은 DB 옵션이 있습니까?

감사합니다.

EDIT : 프로필에 대한 필수 입력란은 다음과 같습니다. IT 분야는 경력 소셜 네트워크이므로 1 : M 인 필드와 같은 많은 포트 폴 리아가 있습니다. 따라서 120 개 필드가 96 개가 1 : M 인 경우 저장하는 것이 가장 좋습니다. Exqample은 근무한 회사입니다. 당신이 공부 한 학교들. 읽은 잡지. 당신이 작성한 기사 등. 이것들은 각각 1 : M이며, 96 = Mysql 테이블과 같은 96ish 필드가있다. 이들 중 일부는 고유 한 메타 데이터를 가지고 있기 때문에 결합 할 수 없습니다. 필드를 검색하고 사용자 경험을 좋게 유지하기 위해 빨리 읽을 수 있어야합니다.

그래프 : 사람들을 연결하는 것입니다. 발사를 위해 나는 당신이 사람에게서 얼마나 많은 정도를 분리하는지 당신이 말할 때 누군가를 전망 할 때 단지 1 개의 특징을 사용하고있다. '소셜'기능의 나머지 부분은 출시 이후의 기능입니다. MySQL에서 어쨌든 나는 이것을 충분히 확장 할 수 없다. 나는 100 명의 친구와 각자 100 명의 친구가 있고 그래서이 사람들 주위에 최선을 다하는 방법을 찾기 위해 그래프 DB를 가정합니다.

플랫폼은 core DB 용 codeignitor PHP/MySQL입니다.

답변

1

노드 사이의 거리를 그래프 데이터베이스와 비슷하게 계산하십시오. OrientDB는 매우 인상적으로 보입니다. 개인적으로는 Neo4j으로 놀았습니다.

확실한 답을 얻으려면 더 많은 요구 사항을 제공해야합니다.

+1

추가 정보가 추가되었습니다. – Pinto90

0

RDF 데이터베이스 - 일주 트리플 스토어의 훌륭한 시나리오와 비슷합니다. 귀하의 데이터가 사람들의 연결에 관한 것이라면 ... FOAF 어휘를 RDF로 모델링 해보십시오. 그런 다음 많은 트리플 스토어 중 하나를 사용할 수 있습니다. C.의 4store로 작성된 분산 RDF 데이터베이스 클러스터의 데이터를 배포하고 당신은 당신의 경우에 고려하는 것이 확실히 SPARQL

수있는 옵션을 조회 할 수 있습니다 - 당신은 확장 성이 필요하면 내가 4store하는 것이 좋습니다.