2013-10-18 4 views
0

NoSQL 데이터베이스에 투표 시스템을 사용할 수 있습니까? 예를 들어 StackOverflow 질문을 NoSQL 데이터베이스에 저장할 수있는 방법을 예로들 수 있습니다. 질문/투표/사용자간에 관계가 작동하는 방법을 제외하고는 거의 모든 것을 상상할 수 있습니다. 그 밖의 모든 것들은 태그, 주석 (게시물에 상대적으로 적은 양의 주석이 있다고 가정 할 경우, 어쨌든 코멘트를 가지지 않을 것이라고 가정), 사용자 정보 등 하나의 문서에 저장할 수 있습니다. 그러나 어떻게 상상할 수 있습니까? 문서가 커질수록 사용자 투표를 저장하십시오. 옵션 중 하나는 별도의 컬렉션/문서에 투표를 저장할 수 있지만 질문을로드하는 동안 사용자가 질문에 투표했는지 여부를 확인하기 위해 다른 요청을 보낼 필요가 있음을 의미합니다.NoSQL의 투표 시스템

+1

이것은 스키마와 스케일 유형에 대한 구체적인 내용이 없으면 실제로 문제가되지 않습니다. MySQL과 같은 것조차도 적절하게 설계된 스키마로 수억 수천만 표를 쉽게 처리 할 수 ​​있습니다. – tadman

+0

@ tadman 내가 말했듯이 StackOverflow의 질문은 코멘트가없는 것과 거의 같습니다. 규모에 관해서는 ... 웹 사이트는 아직 온라인 상태가 아니지만 트래픽이 많아서 모든 것을 미리 준비하고 향후 마이그레이션을 피하고자하는 이유가 있습니다. – Tamerlane

+0

귀하의 사이트가 계속 성장하고 있다면 앞으로의 마이그레이션이 항상있을 것입니다. 앞면을 과도하게 설계하지 마십시오. 고통스럽지 않은 지점에 시스템을 스트레스 할 때까지 어디에 있는지 알 수 없습니다. 작동하는 가장 단순한 것을 만들고 그 작업을 반복하십시오. 점진적 설계는 초기 규모에 비해 너무 복잡하고 변형이 심할 때 재 설계하기가 부적절하고 어렵다. – tadman

답변

1

Embedded documentsReferenced documents에 대한 MongoDB 문서는 좋은 참고 자료입니다. 귀하의 질문에 언급 된 것 같기 때문입니다. 두 가지 모두 트레이드 오프가 있기 때문에 완벽한 솔루션은 없습니다. 데이터베이스에서 실행될 것으로 예상되는 작업/쿼리 유형 및 빈도를 기반으로 최상의 결정을 내려야합니다.

데이터베이스가 심각한 트래픽을 받기 시작할 때까지 SQL과 NoSQL의 차이는 중요하지 않습니다. 사전 최적화는 이익보다 더 많은 해를 끼칠 수 있으므로 배포하기가 가장 쉽고 시작하기가 편합니다.

+0

그들이 도움이 된 링크에 감사드립니다. – Tamerlane

+1

미래에 많은 트래픽이 발생할 가능성이있는 경우 처음부터 확장 성을 염두에두고 설계하면 장래에 많은 시간을 절약 할 수 있습니다. –