7

環境
Spring/hibernate/MySQL Web アプリケーション

問題
後で完了するために各ステップで保存できる複数ステップのフォームがあります。ただし、不完全なステップにはモデルに必要なフィールドが含まれている可能性があり、モデルを保存できません。

私が試したこと、またはしようと思ったこと

  1. フィールドを null 可能にします。
  2. 一時テーブルを使用して不完全なフォームを保存する

しかし..
解決策 1 はデータベースの設計を混乱させ、解決策 2 は一時的なモデルと永続的なモデルの間で変換するフラグメントで私のコードを肥大化させます。

シームレスでエレガントな方法で完全な後の機能を実装するにはどうすればよいですか?

4

3 に答える 3

2

FWIW、私は不完全なフォームを保存するための一時的なテーブルに強く反対しています。現在のアプリケーションにも同様の設定があり(さまざまなユーザーセッションにまたがる可能性のある複数のステップで請求書を準備するため)、保守性の問題と一時テーブルと永続テーブルの一貫性のない変更が発生します。

ステータスが反転するまで後続のワークフローステップで選択されないように、これらの進行中の請求書を分類するディスクリミネーターステータス列を使用した単一テーブルアプローチに移行しています。

于 2012-12-20T07:18:56.097 に答える
2

もう 1 つのオプションはboolean、データベース テーブルに列を作成することcomplete_editです。保存時に最初に入力されていない列については、デフォルト値または「NOT_COMPLETE」などの文字列を保存し、complete_edit列を false に設定します。送信時にのみ、この列が true になる必要があります。

于 2012-12-20T07:01:25.027 に答える
0

解決策 2 をお勧めします: 一時テーブル: ドメイン モデル (通常のテーブル) と永続的なウィザードのような GUI のものを明確に区別するためです。

分離しない場合は、プログラムのどこでも、データがドメイン モデル データまたは GUI データであることを確認する必要があります (すべてが完了するとドメイン データになります)。

于 2012-12-20T10:51:30.350 に答える