0

いくつかの無関係なプロセスを使用して、ユーザーに送信する電子メールを構築するために使用されるテーブル EmailQueue があるとしましょう。電子メールには、増え続けるさまざまな「コンテンツ アイテム」を含めることができますが、ここでは、ニュース、イベント、およびオファーがあるとしましょう。これらの「コンテンツ アイテム」のそれぞれは、それぞれのテーブルに既に入力されており、ユーザーの電子メールに選択的に追加されます。

今、私はデザインの決定を下す必要があります。

1
正規化されたパターンを維持し、電子メールに含めることができる「コンテンツ項目」ごとにマッピング テーブルを作成できます。

|EmailId|NewsId| , |EmailId|OfferId| , ...

この設計で見られる主な問題は、新しい「コンテンツ タイプ」が電子メール システムに統合されるたびにかなりのオーバーヘッドが発生することです。データベースとオブジェクト マッピングの両方で。

また

2
Type 参照を持つ 1 つのマッピング テーブルを作成できます。

   |EmailId|ContentID|ContentType|

もちろん、ここでの大きな問題は、参照整合性がないことです。オブジェクト マッピングの方が処理がはるかに簡単で、新しいオブジェクトを追加するには、新しいContentType行を追加するだけで済みます (もちろん、必要なオブジェクト マッピング コードも必要です)。

これらのソリューションの 1 つが他のソリューションよりも優れていますか? または、私が知らないこれらの両方よりも優れた解決策はありますか?

主にこのプロジェクトを迅速に開発する必要があるため、方法 2 を使用することに傾いていますが、将来その決定を後悔するのではないかと心配しています。

注: サブソニックをデータ アクセス ORM として使用しています。これは、キー付きリレーションを介してオブジェクト グラフを処理する適切な (完全ではない) ジョブを実行します。ただし、アクティブ レコードの「コンテンツ」オブジェクトをドメイン オブジェクトにマップする必要があるでしょう。

4

0 に答える 0