2012-02-07 11 views
0

Twittersの "follow"機能と似た機能を作りたいのですが、そのようなもののためにデータベース構造をどのように作成するのか不思議です。"follow"機能のデータベース構造はtwitterと似ていますか?

ID、ユーザ名

そして、このようになりますポストテーブル:

ID、ユーザーID、ポスト、日付

私たちは、このようなユーザーテーブルを持っていると言います

私がしたいことは、ユーザーに他のユーザーをフォローさせてから、ストリーム内で自分の投稿を取得させることです。だから私はフォローテーブルがあるべきだと思っています。どのユーザーがどのユーザーの後ろに挿入できるか。しかし、それからストリームをどのようにクエリするのですか?ユーザー1は、私が

SELECT posts FROM $peopleIfollow ORDER BY date 

のようなクエリを作りたいしかし、あなたは、上記の例は有効なクエリではありません参照として、ユーザ2と3を次の場合は、どのように私は-informationを「追跡」し、その結果を照会集めることができますか?それとも、これを達成するために探している構造は何ですか?フォロワを配列に入れ、配列にクエリを入れることは可能でしょうか?私はその後、あなたがポストに

SELECT * 
FROM post_table 
LEFT JOIN following 
    ON following.following_id = post_table.userid 
WHERE following.follower_id = ? 
LIMIT 0, 20; 

のようなものを取得したい

following(follower_id, following_id) 

...と考えることができます

+2

これはSQLの多対多の関係です。多くのユーザーには多くのユーザーがいます。これについてはオンラインの文献が数多くありますが、基本は2列の表になります。 1つは、2番目の列でユーザーに従うユーザーです。次に、ユーザー1があなたに従っているかを調べるために、SELECTのような何かをするでしょう。follow_id from followTable where user_id = user1;これは、user1が従うユーザーIDの完全な行を返します。 – thatidiotguy

答えて

2

迅速かつ簡単な解決策?現在のユーザーのIDです。これにより、テーブルに参加し、フォロワーが従う人の投稿を引っ張ります。また、日付順に投げることもできます。

このSQL文は大幅に改善される可能性がありますが、これは簡単で簡単な考えです。

関連する問題