2009-08-04 9 views
1

私はWebアプリケーションのような電子商取引を研究しています。 1件のケーススタディでは、大量のデータ検証に問題があります。エンタープライズアプリケーションのベストプラクティスは何ですか?エンタープライズアプリケーションでのデータ検証のベストプラクティス

ここに1つのシナリオがあります。

貨物システムの場合。出荷される "Good"のリストを含む "Cargo"オブジェクトがあります。それぞれの "Good"には "Category"という名前の文字列フィールドがあり、どのような "Good"なのかを指定します。 「可燃性」「脆弱性」など。

したがって、検証を行うチャンスは2つあります。オブジェクトの作成。オブジェクトのデータベース内の記憶域。保管段階でのみ検証すると、「良い」検証が失敗した場合、「貨物」保管も失敗し、以前に保管された「商品」を削除する必要があります。これは効率が低いです。創造段階でも検証すれば重複した検証ロジックがあります(データベースにこれらの「カテゴリ」を格納する際に外部キーをチェックし、コンストラクターにチェックを入れます)。

+0

レコードはどのように作成されますか?手動またはバッチ? – mson

+0

これらはユーザーの選択によって構築されますが、セキュリティ上の問題も考慮したいと考えています。だから私は検証を追加したい。 – Roy

答えて

3

複数のレコードをデータベースに保存する場合は、すべての更新を1回のトランザクションで一度に行う必要があります。したがって、保存する前にすべてのオブジェクトを検証します。保存中に問題が発生した場合は、すべてのデータベース更新をロールバックするトランザクションをロールバックすることができます(つまり、レコードを元に戻して手動でレコードを削除する必要はありません)。

データを保存する前に、サーバーの検証によって検証メッセージがUser/UIに反映されます。クライアント/ UIの検証は、レスポンスが向上し、システムの残りのオーバーヘッドが削減されるという点でも優れています。

+0

ありがとう!マーク。 – Roy

+0

OWASPウェブ開発ガイドラインを探してください。そこでは、合法化、アクセス制御などのトピックに関する合意されたガイドラインを見つけるでしょう。 – er4z0r

関連する問題