2010-12-06 11 views
0

これは幾分続きDatabase Modeling: Facebook like messagesです。データベースモデリング:Facebookのようなメッセージ

私はFacebookのメッセージに類似したものをモデル化しようとしています。 Facebookでは、ユーザーは壁に、投稿されたメディア(写真、ビデオなど)にコメントを投稿したり、お互いにメールを送信したりすることができます。下の表はそれを表現するためにしようとします:

=========================== 
message 
=========================== 
- message_id (PK) 
- parent_message_id (FK) 
- profile_id (FK, referring to who posted the message) 
- message 
- subject (applicable only for emails) 
- timestamp 

=========================== 
wall_message 
=========================== 
- message_id (FK) 
- profile_id (FK, referring to who received the message/owner of wall) 

=========================== 
media_message 
=========================== 
- message_id (FK) 
- media_id (FK, referring to the specific photo, video, etc.) 

=========================== 
email_message 
=========================== 
- message_id (FK) 
- profile_id (FK, referring to who received the message) 

いくつかの質問:

  1. は誰がデザインを持つ任意の潜在的な問題を参照してくださいしていますか?
  2. 複数の受信者に送信されたメールをどのように処理すればよいですか?
  3. このような方法でこれらのテーブルをクエリすると、プロファイルの所有者の壁とメディアの最新の4つのメッセージ(そのプロファイルの壁に表示できるように)をメッセージのタイムスタンプで表示できますか?

答えて

-1
  1. いいですね。
  2. (未テスト)以下のことを試してみてくださいユニーク
  3. すべきではない、すなわちPROFILE_ID、email_message 1対多の関係ください:

    SELECT TOP 4 * 
    FROM message INNER JOIN wall_message ON message.message_id = wall_message.message_id 
    WHERE wall_message.profile_id = @prof_id 
    ORDER BY message.timestamp DESC 
    
関連する問題