2011-02-03 6 views
0

私はHow to implement the activity stream in a social networkからユーザー投稿の1つに基づいて活動システムを構築しようとしていました。私は別のテーブルに返信コメントを入れるべきかどうか、私は同じテーブルに保持する必要があるのだろうかと思っていました。 btwの返信は、Facebookのどのアクティビティにも返信するのと同じで、そのすぐ下に表示されます。だから私はそれを別にしておくと、クエリが遅い、いいえ読み込まれると思いますか?アクティビティのコメントは新しいテーブルにあるか、同じテーブルにあるべきですか?

+0

データベースを設計する際のパフォーマンスについては決して考えないでください。これはまれに問題になることはほとんどありません。データベースはそのようなものに最適化されています。パフォーマンスの問題が発生した場合は、dbデザインを修正するために他の方法があります。 – Christian

答えて

0

私はコメントは別のテーブルに入れるべきだと思います。 1つのアクティビティに対して複数のコメントが存在する可能性がありますので、このコメントテーブルには1 < - > *の関係が必要です。アクティビティーとコメントに同じ表を使用する場合、この表に親を追加することが可能でなければなりません。親=アクティビティ、子=コメント。

+0

アクティビティのストリーミングでは、実際にデータベースの正規化を行うことはできません。あなたが私が投稿したリンク上の例を見てください。彼らはパフォーマンスの問題のためにテーブル間の関係を切ったので、パフォーマンスについて覚えておく必要があります。これは実際にフィードをビルドしているので、これをすぐに実行する必要があります – Basit

+0

可能。それをモジュール式に構築する。あなたが実際のデータや適切なテストセットを持っているときに、それが十分にうまくいくかどうかがわかります。そうでなければ、その部分を置き換えたり、キャッシュ、メモリインデックスなどを追加することができます。デザインが最初からスピードに合わせて最適化されていれば、変更するのがずっと難しくなります。 – Christian

関連する問題