私は、ユーザーからすべての(つまり「たくさんの」)写真を撮るアプリ(Rails 3.2、Mongoid)に取り組んでいます。最初にアルバムを取得し(<userid>/albums
)、次にアルバムごとに写真を取得し(<albumid>/photos
)、次にユーザーの写真を取得します(<userid>/photos
)。次に、各写真に対していくつかの操作を実行し、それらをDBに保存します。
現在、セーフティネットとして、「孤立した」写真ごとに、重複を避けるために、写真がまだ存在していないかどうかを確認しています。現在のチェックは、exists
クエリを使用してデータベースで実行されます。ただし、これは多くのデータベースクエリを作成するため、これは受け入れられません。写真を追跡するために配列を使用してサーバー側でそれを実行しようとしましたが、それははるかに遅くなりました(Array#select
私のメモリが正しい場合に使用しました)。
それで、2つの質問:1 /この「セーフティネット」は役に立ちますか、それとも孤立した写真を複製することはできないのは当然だと思いますか?はいと思いますが、チェックは理由があると思います。2 /データベースに重複がないことを確認するためにチェックする必要がある場合、効率的にするにはどうすればよいですか?
編集
本当に重複している可能性があるようですので、質問1/は解決しました。さて、2について:アルバムに属している場合、取得した写真フィールドから「推測」することは可能ですか?のようなフィールドはありませんがalbum_id
?「写真がからuser
ではなく、user
タグ付けされている場合」のように->孤児?
お時間をいただきありがとうございます!