MongoDB - DBREF가 필요합니까?
MongoDB에서 DBREF 데이터 유형을 사용하면 아래와 같이 문서가 표시될 수 있습니다.하지만 그것을 가지고 있는 것.$ref
모든 행의 필드는 모든 행이 명백하게 다음을 가리키기 때문에 중복으로 느껴집니다.users
수집.
다소 중복되지 않고 다른 문서를 참조할 수 있는 방법이 있습니까?$ref
필드?
{
$id: {$oid : "4f4603820e25f4c515000001"},
title: "User group",
users: [
{_id: {$ref: "users", $id: { $oid: "4f44af6a024342300e000002"}}, isAdmin: true }
]
],
mongodb로 작업할 때, 적어도 확장성이 필요한 큰 시스템으로 작업할 때는 Dbref를 피해야 한다고 생각합니다.
모든 운전자가 DBef를 로드하기 위해 추가 요청을 하는 것으로 알고 있기 때문에 데이터베이스 내에서 '가입'하지 않고 매우 비쌉니다.
다소 중복되는 $ref-field 없이 다른 문서를 참조할 수 있는 방법이 있습니까?
예, 참조를 염두에 두고 '외부 키'(예: RefUserId 또는 UserId)에 대한 명명 규칙을 만들고 참조된 문서의 ID만 저장합니다.필요할 때 참조 문서를 직접 로드합니다.또한 비정규화를 위해 눈을 크게 뜨고 작업을 수행할 수 있습니다. 일반적으로 성능이 크게 향상되기 때문입니다.
드라이버별 액세스 방법을 사용하지 않는 한dbref
그것은 불필요해야 합니다.
가입을 수동으로 관리하는 경우(즉, "가입"할 다른 컬렉션을 알고 있는 경우) ObjectId만 저장하면 됩니다.
문서에서:
수동 참조가 대안이며 문서에서는 DBREF보다 수동 참조가 더 좋다고 합니다(이유는 모르겠지만). DBREF는 참조된 개체가 다른 데이터베이스에 있거나 컬렉션 이름이 명확하지 않은 곳에 있을 때 유용합니다.
모든 종류의 링크보다 정규화/임베딩이 더 좋습니다. 그러면 원자 업데이트를 받고 관련 데이터를 다시 쿼리할 필요가 없기 때문입니다.
언급URL : https://stackoverflow.com/questions/9412341/mongodb-is-dbref-necessary
'programing' 카테고리의 다른 글
Apache POI 데이터 포맷터가 과학적 표기법을 반환합니다. (0) | 2023.07.01 |
---|---|
Oracle은 빈 문자열을 NULL로 간주하는 반면 SQL Server는 NULL로 간주하지 않습니다. 어떻게 하는 것이 가장 좋을까요? (0) | 2023.07.01 |
Vue.js 및 Vuex this.$store 반환을 새 Vue({store})에 추가한 후 정의되지 않음 (0) | 2023.07.01 |
어떻게 "참조" 값을 소방서에 삽입합니까? (0) | 2023.07.01 |
레이지 초기화예외: 프록시를 초기화할 수 없음 - 세션 없음 (0) | 2023.07.01 |