2012-03-04 4 views
3

ソーシャルネットワークサイトのデータベース開発

私は最近、以下のソーシャルネットワークサイトのデータベースの構築を開始、データベース

の私の概念であり、これは正しいですか、あなたが何かを示唆していると、なぜ

1.「ユーザー」テーブルにはユーザの詳細

です

2.「投稿」テーブルには、ユーザー固有のIDを持つすべてのユーザーの投稿が格納されます。

3.「好き」テーブルには、ユーザー、投稿、コメントごとに個別に投稿が格納されます。

4.「友人」テーブルが50001のユーザーIDを格納し、ユーザーの1つのIDと別の列の彼/ ERの友人の5000個のIDが5001個のフィールドを意味し、それは大丈夫でしょうか?

5.「コメント」テーブルには、ユーザーのIDをユニークすべての記事のコメント、ポストと

コメント、どこユーザーが投稿できることができます

コメント、のようにすべてのテーブルには、profile.php上のいくつかのデータをロードします

ここではprofile.phpファイルがボタンを

  • を提出して

    1. ショーは、入力ボックスを投稿負荷に物事あるiframe内に10件の記事を表示
    2. 各投稿の好きなコメントやコメントを計算して表示する

    これはいい投稿ですか?ユーザーが好きなものやコメントをクリックしたとき 自分の投稿に好きな人やコメントがある人のリストを表示するよりも?上記のタイプのデータベースはこのクエリを処理していますか?このプロセスの速度はどれくらい速い/正常/遅いのでしょうか? "select"コマンドで十分であり、このクエリで正常に動作しますか? 注:私はPHPを使用して、MySQLとJavaScriptの

    私の低書式設定や弱い英語をお詫び申し上げますが、私は

    はしかし(ターゲットにそんなに

  • +6

    4)** NO **!友情ごとに1つの行を使用してください。 – SLaks

    +0

    @SLaksは、ユーザーの2つの列と彼の友人の列を意味しますか? ご返信ありがとうございました –

    +0

    そして、彼の友人のための1つのコラム。 – SLaks

    答えて

    2

    シーム多かれ少なかれありがとう私のベストを尽くします非常に素朴なアプローチ)NO!をユーザーフレンドテーブルに追加します。

    userId | friendId 
    

    友人のテーブルである必要があります。それだけ。 ID 24の友だちのユーザーを探すときは、

    SELECT friendId from user_friends_table WHERE userId = 24 
    

    とは別に起動します。 どのように実装するべきかを認識する唯一の本当の方法は、試行して失敗することです。何度も何度も繰り返します。

    +1

    上記のSQLへの可能な追加は、 'select u。* from user_friends_table uft left join user u on u.id = uft.friendId'です。 –

    +1

    @Frankieご質問ありがとうございます。質問に他のことについてお聞かせください。 –

    +0

    @BenWerdmuller私はあなたの提案も良いと思っていますが、実際は私の知識は低いです。なぜなら私はそれを理解できないのですか? –