1

What is an efficient way to store sent emails for a email list database? I'm having some trouble figuring it out.

Right now, to simplify I have something like this:

Lists:
ID,
Name

Subscribers:
ID
Email
Name

ListSubscribers:
ID
SubscriberID
ListID

Messages:
ID
Title
Content
ListID

So far so good... The problem is figuring out what is an efficient way to store sent and to be sent emails as well as email sending status.

For instance, I might have hundreds of lists with each one having tens of thousands of subscribers. To know the status of each mail, I would have to store the details about each message:

MessageStatus:
ID
MessageID
SubscriberID
Status (processing, sent, soft bounce, hard bounce)

With a handful of lists and hundreds of thousands of subscribers this can balloon to millions of messages in just a few days.

Is there a more efficient way to do this?

4

2 に答える 2

1

質問をされているので、MessageStatusテーブルが占めるスペースの量が問題になると思います。ただし、この仮定に異議を唱える必要があります。

のスペースを管理する必要がある場合、何らかの理由で監査ログが必要な場合を除いて、監査ログではなくワークリストMessageStatusの観点から操作できます。

これを行うには、MessageStatus定義したとおりにテーブルを使用します。ただし、レコードが「送信済み」ステータスになったら、更新するのではなく削除します。このように、まだ送信されていない電子メールと同じ数のレコードしかありません。

于 2013-01-10T13:04:52.810 に答える
1
  • List(テーブル):ListID(PK)、ListName

  • サブスクライバー(テーブル):SubscriberID(PK)、ListID(FK)、FirstName、LastName、EmailAddress

  • Email(テーブル):EmailID(PK)、ListID(FK)、Subject、Content、SendDate

于 2013-01-09T21:47:01.603 に答える