3

これらの HTML メールのテンプレートはすべて同じですが、名前、姓などの変数が異なるだけです。

必要最小限のデータを保存し、テンプレートをロードして毎回変数を置き換えるのは理にかなっていますか?

もう 1 つのオプションは、実際に HTML ファイルを作成し、それへの参照を保存することです。これはおそらく最も簡単な方法ですが、ファイルの管理が面倒になる可能性があり、移行やファイルのアクセス許可などに関して複雑さが増します。

やったことある人の意見求む…

目標/目的/用途:

私は予約エンジンを持っています。ユーザーが予約すると、セッション化された予約データから生成された確認メールが送信されます。

この電子メールには、プレーンテキスト ビューに加えて、電子メールの Web ビューを提供する「この電子メールを表示できませんか? ここで参照してください」というリンクが含まれています。

プレーンテキスト ビューに加えて、送信されたのと同じメールを表示する必要があります。

テンプレートは変更される可能性がありますが、まさにそのため、テンプレートのテーブルを用意して、データをテンプレートにマップする必要があると思います。

4

4 に答える 4

0

ええ、あなたの権利は順調です。私も同じようなことをしました。すべての動的/実行時変数は@@symbolから始まりました。

したがって、データベースには1つのテンプレートテーブルがあります。1つのテーブルは、動的/実行時変数用です。テンプレート変数と動的/実行時変数の間のマッピング用の1つのテーブル。

tblTemplate -TemplateID、TemplateValue
tblRuntimeVariables -RuntimeVariableID、VariableString、VariableSQL
tblMapping -TemplateID、RuntimeVariableID、RuntimeVariableValue

追加のマッピングテーブルを使用する利点は、既存の変更に新しい動的変数を追加すると、既存のデータベースに変更を加えないことを意味することです。tblMappingに追加される行はさらに多くなります。

私の場合、ランタイム変数の値がデータベースからフェッチされた場合に備えて、SQLステートメントをtblRuntimeVariablesに格納するための追加の列も1つありました。

于 2011-03-17T18:48:40.217 に答える
0

テンプレートのレイアウトは時間の経過とともに変更される可能性がありますが、個人情報は同じままである必要があるためです。したがって、個人情報をデータベースに保存し、テンプレートをデータベースから除外することは理にかなっています。

実際、Velocity (Java) などのテンプレート エンジンを使用して HTML メールを作成すると、さらに効果的です...ちなみに、非常に簡単です。

于 2011-03-17T18:39:28.110 に答える
0

一方では、CPU はメモリよりも高価であるため、ほとんどの場合、計算に使用される CPU パワーを削減するために、より多くのデータを保存することをお勧めします。しかし、あなたの場合、最小限のデータ、電子メール、または保存しようとしているものを保存します。これにより、テンプレートを簡単に改造し、アプリケーションの複数の場所でデータを再利用できるからです。

于 2011-03-17T18:40:10.107 に答える
0

正規化されていない冗長データ (特にテンプレートのため) を永続化します。そうすることはお勧めしません。しかし、コメントで述べたように、そのデータで何をしたいかは重要です。

必要なデータのみを保存する場合、たとえば、そのテンプレートを簡単に交換して別のテンプレートを使用できます。

于 2011-03-17T18:40:13.017 に答える