2013-05-03 4 views
0

작은 웹 프로젝트를 배포하고 싶습니다. 저장하려는 데이터가 중첩 된 구조체가있는 구조체이고 내부 구조체가없는 구조체가 대부분입니다. 동일한 필드와 유형이 있어야합니다.개체 저장에 사용할 데이터베이스를 선택하는 방법

예를 들어, 나는 테이블의 "행"으로, 그런 일을하고 싶습니다

{ 
    event : "The Oscars", 
    place : "Los Angeles, USA", 
    date : "March 2, 2014" 
    awards : 
    [ 

    bestMovie : 
    [ 

     name : "someName", 
     director : "someDirector", 
     actors : 
     [ 
     ... etc 
     ] 

    ], 

    bestActor : "someActor" 

    ] 

} 

(JSON 객체는 순간에 나를 위해 쉽게 사용할 수 있으며, 서버 사이를 통과하고 클라이언트 측 클라이언트 측 JavaScript에서 실행)

MySQL/PHP로 시작했지만 곧 내게 적합하지 않다는 것을 알았다. 나는 며칠 동안 mongoDB를 시도했지만 사용법이 가장 좋은 데이터베이스를 검색하는 방법을 정확히 모릅니다. 일부 개체 모델/스키마를 설정하고 업데이트 할 부분과 각 구조체에서 고유 한 필드를 정확하게 선택할 수 있기를 원합니다.

제안 사항? 감사.

답변

1

이것은 대답 할 수없는 질문이므로 종료 될 수 있습니다. 아무도 여기에 대답하지 있습니다 및 데이터 구조, 속도 요구 사항, 당신을 무엇의 이전 CAP 정리 질문으로 물어 몇 가지 질문이 있습니다이 필요합니다

  • 일관성
  • 가용성
  • 파티션 기능

나는 몽고가 우연히 멀리 떨어져 일하면서 위의 모든 문제를 처리 할 필요가 없다고 생각하면 시작하는 것이 좋습니다. 소파도 비슷한 옵션이지만 커뮤니티 크기는 동일하지 않습니다.

데이터가 문서로 비정규 화되어 mongo가 문서를 제공하기 때문에 mongo라고 말합니다. 그것은 또한 json을 말한다!

RDBMS 데이터베이스를 사용하면 문서를 비정규 화하고 관계를 만들 필요가 있습니다.이 관계는 문서를 문서에 집어 넣을 때 상대적으로 관계가 있습니다.

프로토콜 버퍼를 사용하여 데이터를 직렬화하고이를 rdbms에 넣을 수는 있지만 바람직하지 않습니다.

놀라운 속도의 경우 메모리에서 일정 시간 조회가있는 redis를 사용할 수 있습니다. 그러나 이는 장기간 지속성이 아닌 사용자 세션과 같은 일시적인 데이터에 더 적합합니다 (대부분의 경우).

마지막으로 입력 된 가장자리가있는 노드 간의 관계를 저장하는 문서 형 데이터베이스 인 neo4j와 같은 그래프 데이터베이스가 있습니다. 이는 소셜 및 추천 문제에 매우 잘 맞지만 문제 해결에 도움이되지는 않을 것입니다. 문제는 스토리지 데이터에 가장 적합한 것이 무엇인지 간단하게 설명합니다.

가능성을 살펴보면 이미 json 문서 구조가 있고 해당 문서에 단순한 지속성 만 있으면 mongo가 사용자의 요구에 가장 잘 어울리는 것 같습니다.

+0

고맙습니다. 나는 그것이 '일반적인'질문이라는 것을 알고있다. 나는 그때 mongoDB를 고수 할 것이다. – AntouanK