couchdbにドキュメントがあります。スキーマは次のようになります。
userId
email
personal_blog_url
telephone
2人のユーザーは、実際には同じ人物であると思います。
- メールまたは
- personal_blog_urlまたは
- 電話
同一である。
3つのビューを作成しました。これは、基本的にemail / blog_url / telephoneをuserIdsにマップし、userIdsを同じキーの下のグループに結合します。
_view/by_email:
----------------------------------
key values
a_email@gmail.com [123, 345]
b_email@gmail.com [23, 45, 333]
_view/by_blog_url:
----------------------------------
key values
http://myblog.com [23, 45]
http://mysite.com/ss [2, 123, 345]
_view/by_telephone:
----------------------------------
key values
232-932-9088 [2, 123]
000-111-9999 [45, 1234]
999-999-0000 [1]
私の質問:
- 3つの異なるビューの結果を、重複を含まない最終的なユーザーテーブル/ビューにマージするにはどうすればよいですか?
- または、couchdbでそのような重複排除を行うのが良い習慣かどうか。
- または、ソファで重複排除を行うための良い方法は何でしょうか?
ps。最終ビューでは、すべての重複について、最小のuserIdのみを保持するとします。
ありがとう。