2012-09-17 2 views
18

데이터베이스에 객체 ID의 배열을 저장해야합니다. 무엇을 사용해야합니까? 이 같은ObjectId의 배열을 저장하는 MongoDB

[ObjectId("50350e12a36feb1be6000364"), ObjectId("57350e12a37fef1be6000922"), ObjectId("10350e17d34ffb1be6200925")] 

또는 무언가 : : 이런 식으로 뭔가

["50350e12a36feb1be6000364", "57350e12a37fef1be6000922", "10350e17d34ffb1be6200925"] 

내가 두 번째로 공간을 절약하고 ObjectId 캐스팅,하지만이 방법을 사용하여 아무것도 잃어버린하고 있을까? ObjectId은 관계형 데이터베이스에서 외래 키처럼 작동합니까?

답변

25

나는 확실히 ObjectId을 저장하는 첫 번째 방법을 사용합니다. 이렇게하면 두 번째 접근 문자열이 24 바이트 인 반면 ObjectId is 12 bytes으로 공간이 절약됩니다.

또한 ObjectId을 사용하여 개체를 나중에 가져 오는 경우 ObjectId으로 저장하면 번거 로움이 없습니다.

11

좋은 이유가없는 한, ObjectIds의 배열로 저장할 필요가없는 경우를 제외합니다. 컴팩트 (12 바이트 대 24)이며 저장된 내용을보다 정확히 반영합니다. 또한 다음 ObjectId 참조에 대한 드라이버 수준 지원을 활성화 할 수 있습니다.

+4

+1, 그래, 질문에 ObjectIds의 크기에 대한 기본적인 오해가 있다고 생각합니다. –

관련 문제