2011-11-26 3 views
3

many-to-many 관계 (한 사용자는 많은 제품을 가지고 있고 같은 제품이 여러 사용자에게 속할 수 있습니다)의 사용자와 제품을 가진 node.js에 응용 프로그램을 빌드하고 있습니다. 각 사용자는 위치 정보도 가지고 있습니다.MongoDb는 내 응용 프로그램에 적합합니까?

대부분 사용자가 처음 방문했을 때 다음 글에 많은 글을 쓸 필요가 있습니다. 예를 들어 가장 많은 수의 제품을 공통으로 갖고있는 사용자와 일치시켜야합니다. 공통의 동일한 제품. 나는 또한 사용자를 위치별로 매치시키고 싶을 수도있다. (또는 매칭 위치에 따라 정렬 할 수도있다.)

나는 지금 포스트그레스를 사용하고 있지만 장기적으로는 몽고를하는 것이 더 좋을 것이라고 생각한다. 문제는 내가 NOSQL DB에서 일한 적이 없다는 것이다. (걱정할 필요 없다.)

위의 설명에 적합한 질문은 다음과 같다.

[user]{ 
_id 
name 
age 
[location]{ 
      streep 
      town 
      country 
      } 
} 

[products]{ 
_id 
name 
color 
[users]{ 
     user_id_1 
     user_id_2 
     user_id_3 
     } 
} 

요구 사항 때문에 나는 embeding보다이 방법이 좋습니다. 내가 맞습니까? 사용자 문서에 products_id를 저장해야한다고 생각합니까?

감사합니다.

+0

궁금한 점이 있다면 왜 몽고가 나아 졌다고 생각하니? 현재 DB를 요구 사항에 사용하는 데 문제가 있습니까? – JohnP

+0

글쎄 성능이 좋고 (유망한 그래픽을 보았을 때) 나는 node.js를 사용하고있는 postgres 구현에 약간의 문제가있다. 다소 실망 스럽다. 내가 포스트잇과 붙어 있어야한다고 생각하니? 감사!! – jribeiro

+1

스위치를 왜 사용하고 있는지 궁금 할뿐입니다. 노드 용 mongo 드라이버는 꽤 좋으며 많은 프레임 워크가 있으므로 걱정할 필요가 없습니다. 하지만 조인 된 데이터로 작업한다면 관계형 DB처럼 깨끗하지 않을 것입니다. 얼마나 많은 데이터를 복제 할 것인가에 달려 있습니다. 유즈 케이스가 약간 다르므로 정규화는 mongodb에 약간의 영향을줍니다. – JohnP

답변

3

귀하의 데이터는 제게 상당히 관계가 있습니다. 나는 MongoDB 나 NoSQL 솔루션에 큰 이점을 얻지 못할 것이다. 이들은 관계형이 아닌 문서 기반 솔루션에 적합합니다.

스케일링이나 성능에 문제가있는 경우 데이터를 얻을 수 있습니다. 근원이 무엇인지 알 때까지 해결책을 취하지 마십시오. 그것은 node.js 일 수 있습니다 - 누가 알겠습니까? Some people 그다지 신경 쓰지 마라.

+0

거기에 몇 가지 좋은 점이 있지만 나를 위해 node.js의 장점은 광범위하게 작동한다는 것이다. 자바 스크립트처럼 받아 들여진 언어는 사용하기 쉽다. 내가 보는 방식은 서버 비용/효율성과 시간 비용 및 효율성의 차이입니다. 그것은 노드 (결국)가 물지 만 현재 데이터베이스 성능이 주요 문제 일 때 정보를 얻고 준비하는 것이 분명히 좋다고 말했습니다. 처음 방문했을 때 약 2000 건의 평균 인서트가 있었고 이후 노드 만 마술을 할 수있었습니다 (노드 원리와는 조금 다르기는하지만 해결책이 있다고 생각합니다). 감사합니다 !! – jribeiro

+0

예 맞춤법 실수로 유감스럽게 생각합니다 ... – jribeiro

관련 문제