2

PHPとMySQLで構築されたプライベートメッセージングシステムでは、ユーザーは新しいメッセージを作成し、メッセージに応答できます。「送信」と「保存」の2つのボタンがあります。メッセージのステータスはデータベースに保存されます(0 =まだ送信されていない、1 =送信されている)。また、メッセージはajax-callを介してたとえば3分ごとに自動的に保存されます。

送信されたメッセージとドラフトは、データベースの同じテーブルに保存されます。さて、あなたはいつしINSERT INTO messages ...ますか?

ユーザーが[新しいメッセージの作成]または[回答]をクリックした場合はどうなりますか?ユーザーがメッセージを送信せず、ウィンドウを閉じ、戻るボタンを押した場合に、送信されていないすべてのメッセージを消去するにはどうすればよいですか?

他にどのようなオプションを提案しますか?

4

2 に答える 2

2

自動的に保存されたメッセージはドラフトバージョンとして表示されませんか?その後、彼らは自分たちでそれらのほとんどをクリーンアップします

要求に応じて答え;)

于 2012-07-16T09:27:52.503 に答える
0

ユーザーが「メッセージの作成」をクリックすると、ステータスが「保留中」の新しいメッセージを挿入します。たとえば、1日非アクティブになっているすべての「保留中」のメッセージを削除できます。

ユーザーがその特定のメッセージでたとえば1分間忙しい場合、メッセージを「コンセプト」として保存し、ユーザーがページを離れたときに後で確認できるようにします。コンセプトを削除したり、ユーザーに自分でやらせたりすることは決してありません。

ユーザーが「保存」(「送信」ではない)をクリックすると、メッセージに「コンセプト」ステータスも表示されます(以前にそれがなかった場合)。

メッセージが送信されたら、「送信済み」ステータスを指定します。ただし、この方法でメッセージシステムを開発する前に、考慮したいことがあります。

自問してみてください:メッセージとは何ですか?メッセージにはそれ自体のステータスがありますか?そして、そのステータスは誰に適用されますか?既読メッセージのステータスは「既読」にすることができますが、メッセージを複数の受信者に送信するとどうなりますか?すべての受信者が読んだときにステータスを変更しますか?あまり便利ではありません。

複数の受信者を有効にするために、データベースモデルを少し変更することをお勧めします。タイトルや本文などを1つのレコードに保存し、メッセージのステータスを保持している受信者ごとに(別のテーブルに)新しいレコードを追加します。送信者用に1つ、受信者ごとに1つあります。このようにして、各受信者のメッセージのステータスを個別に操作でき、これらすべてのレコードを確認することで、メッセージの全体的なステータスを計算できます。(10人の受信者のうち5人があなたのメッセージを読みました)。

于 2012-07-16T09:03:12.617 に答える