2

ユーザー主導のウェブサイトがあります。メッセージング機能を追加したい。私の懸念は、データベースの管理性とパフォーマンスに関連しています。

私はそれを次のように整理することを考えています:ユーザーテーブルがあり、すべてのユーザーが一意のIDを持っています2人のユーザー間のユーザーが開始した会話には「会話」のレコードがあり、その会話のすべてのメッセージは参照する外部キーを使用しますそのconversation_id。

誰かがこのアプローチを採用しない理由を考えることができますか?インデックスを使用し、クエリをページごとに最大20の結果に制限すると、長期的にどの程度のパフォーマンスが得られるのでしょうか。

+--------+
| users  |
+--------+
|users_id|
|        |
+--------+

+-------------+
|conversations|
+-------------+
|id           |
|user_id1     |
|user_id2     |
+-------------+

+----------------------+
|conversations_messages|
+----------------------+
|id                    |
|conversations_id      | 
|message_body (varchar)|
|message_time (unix timestamp
+----------------------+

編集:送信者/受信者を追跡する方法がないことに気づきました。私の最初の本能は、conversations_messagesに「sender」列を追加することです。

4

1 に答える 1

3

この質問に対する私の答えを見てください。そこで同様の設計上の問題に取り組んでいます。これには、誰がどのメッセージを見たか、誰が各メッセージの送信者であるかの処理が含まれます。

于 2011-08-25T15:11:01.007 に答える