0

ユーザーが互いにメッセージを送信できるようにするシステムを実装することを考えていたとき、受信者ごとにメッセージのコピーを保存する代わりに、1 つのメッセージを受信者のリスト。

実際には 3 つのリストがあり、受信者のリストが 1 つ、ブール値のリストが 1 つあり、b[i] の場合、受信者[i] はメッセージを読み、3 つ目のリストにはメッセージを削除していないすべてのユーザーが含まれます。毎日、cron ジョブを実行して、そのようなユーザーのリストが空のメッセージを探し、それらを削除していました。

このモデルに問題がある可能性はありますか?

4

1 に答える 1

2

最初のスキーマは、時代遅れでうまく機能しない電子メール アーキテクチャを複製しようとするようなものです。

間違いなく、2番目のアプローチの方が優れています。

問題?あなたのコードにバグがない限り、誰もいません。ただし、サポートする必要がある場合は、返信を検討してください。インスタンスが 1M のサイズ制限を超えない場合は、4 番目のリストで十分かもしれません。

しかし実際には、答えを分離したモデルの方が一貫性があり、直感的です。readed_byこの新しいモデルには、deleted_by、 などのリストもあります。

cron ジョブは不要な場合があります。ユーザーがメッセージを「削除済み」としてマークした後、メッセージを削除できますmessage.deleted_by == message.receivers + message.from

于 2012-09-28T17:11:03.417 に答える