MongoDB에서 데이터 버전 관리를 어떻게 구현할 것인지 생각을 공유 할 수 있습니까? (나는 카산드라에 대해 비슷한 질문을했다 . 어떤 db가 더 나은지 생각한다면 공유하십시오)
간단한 주소록에 레코드 버전을 지정해야한다고 가정하십시오. 주소록 레코드는 플랫 json 오브젝트로 저장됩니다. 나는 역사를 기대합니다 :
- 자주 사용되지 않습니다
- "타임머신"방식으로 제시하기 위해 한 번에 사용됩니다
- 단일 레코드에 수백 개 이상의 버전이 없습니다. 역사는 만료되지 않습니다.
다음과 같은 접근법을 고려하고 있습니다.
레코드 히스토리 또는 레코드 변경 사항을 저장할 새 오브젝트 콜렉션을 작성하십시오. 주소록 항목을 참조하여 버전 당 하나의 개체를 저장합니다. 이러한 기록은 다음과 같습니다.
{ '_id': '새 ID', 'user': user_id, '타임 스탬프': 타임 스탬프, 'address_book_id': '주소록 레코드의 ID' 'old_record': { 'first_name': 'Jon', 'last_name': 'Doe'...} }
이 접근 방식은 문서 당 여러 버전의 버전을 저장하도록 수정할 수 있습니다. 그러나 이것은 이점이없는 느린 접근 방식 인 것 같습니다.
주소록 항목에 첨부 된 버전을 직렬화 된 (JSON) 객체로 저장합니다. 그러한 객체를 MongoDB 문서에 첨부하는 방법을 잘 모르겠습니다. 아마도 문자열 배열 일 것입니다. ( CouchDB를 사용한 간단한 문서 버전 화 후 모델링 )