2017-10-08 8 views
0

は、私は、ユーザーテーブルにIDを参照し follower_idfollowed_idを持っusersテーブルとuser_followersという名前のピボットテーブルを持っています。ルック

ユーザーのフォローを得るには、このユーザーのIDを取得して、followed_idがこの特定のuser_idと等しいフィールドを探します。これですべての問題は解決しました。これらの行を取得し、usersテーブル内のフォロワーのIDを探します。私の質問は、これらのID(多くの場合があります)と一致するユーザーを探す必要がある場合、これがあります。

例:これらのID:3,4,9,10,12;私は、これらのidの1つを持つ行についてuserテーブルを探し始めます.3つ見つかった場合(たとえば)、このidをもう見つけたくないのに(すでに見つかっているので)、4,9,10と12など。

多分私はこの問題を解決するために欠けているものがありますが、これはデータベースのシーンの裏でどのように動作するのかわかりません。 (私はPostgresを使用しています)

可能であれば、これはMongodbでどのように行うことができるか知りたいと思います。

答えて

1

これは心配する必要はありません。単一のクエリですべてが実行されます。

SELECT u.* -- or just the columns you need. 
FROM user_followers AS f 
JOIN users AS u ON u.user_id = f.follower_id 
WHERE followed_id = $1; 
+0

ありがとうございます。この場合、nosqlの代わりにリレーショナルデータベースを使用することをお勧めしますか?パフォーマンスが優先されていますか?助けてくれてありがとう:-) –

+0

基本的なインデックスでは、パフォーマンスはPostgresやMySQLで全く問題にならないはずです。もちろん、正確な要件にもよります。 –

関連する問題