2013-08-20 2 views
0

다양한 소셜 미디어에서 사용자의 다른 프로필을 저장해야합니다. 예를 들어 사용자는 1 개의 Facebook과 2 개의 Twitter 프로필을 보유 할 수 있습니다. 만약 내가 각 프로필을 저장하면 그것은 페이스 북과 트위터 같은 다른 컬렉션에 새 문서로 삽입됩니다 컬렉션이며 어떻게 다른이 문서와 관련이 있습니다. mongodb에서 점 표기법을 사용했습니다. 만약 내가 페이스 북과 트위터 프로필을 동일한 사용자의 의미가 의미합니다 쉽게 레코드를 가져올 수 있습니다. 어떻게 스키마를 설계 할 것이라고? 및 또한 how would i avoid duplication? facebook id 트위터 ID를 고유 한 것으로 사용할 수 있습니까? 나는 mongoDB을 처음 사용하고 있습니다. 다른 컬렉션의 문서에 어떻게 가입합니까?Mongo Db 스키마

답변

1

이것은 루비 구현이지만 스키마 논리를 Java 코드로 변환 할 수 있기를 바랍니다.

class User 
    has_one :facebook_profile 
    has_one :twitter_profile 
end 

class TwitterProfile 
    belongs_to :user 
end 

class FacebookProfile 
    belongs_to :user 
end 

당신은 너무 같은 컬렉션에 고유 인덱스를 적용 할 수 있습니다 :

db.twitter_profiles.ensureIndex({user_id: 1 }, {unique: true}) 
db.facebook_profiles.ensureIndex({user_id: 1}, {unique: true}) 

을 당신은 사용자 수준에서 고유성을 적용 할 원하는 필드 사용할 수 있습니다.

희망이 있습니다.

+0

위대한 하지만 어떻게 저장 후 인덱스를 시행할까요? – jackyesind

+0

{unique : true, dropDups : true}를 지정하여 색인을 추가하고 색인과 충돌하는 문서를 제거 할 수 있습니다. – davissp14

+0

이 답변에 대한 질문이 있습니까? – davissp14