sql >> データベース >  >> RDS >> Mysql

ユーザーメッセージングシステム

    少なくとも次のものを用意することをお勧めします:

    ユーザー、スレッド、メッセージ

    • すべてのメッセージにスレッドがあります
      • 外部キー:thread_id
    • すべてのスレッドには、少なくとも1つのメッセージと少なくとも1つの受信者(および送信者)が含まれます
      • 外部キー:to_user_id、from_user_id、message_id

    そこから、スレッドにいくつかのフラグ(to_user_deleted、from_user_deleted)を割り当てるだけで、それに応じて更新されます。

    もちろん、どのようなことを説明したいかなど、考慮すべきことがたくさんあります。例:

    • 開始メッセージではなく現在のメッセージを表示しますか?
    • ユーザーが個々のメッセージを既読としてマークできるようにしますか、それともスレッドだけとしてマークしますか?

    データベースを設計する際には、これらすべてを考慮する必要があります。



    1. PHP / MySQLでは、複数のデータベース接続を開く必要がありますか、それとも1を共有する必要がありますか?

    2. PHP/MySQLのタイムゾーンの明確化

    3. チェーンはターゲットテーブルに結合します

    4. 組み合わせに単一行を許可するMysqlの一意の制約