請求書などの再発行機能は必要機能です。再発行の際の住所類の整合性をどのようにします?
請求書table上には, 顧客コードのみ確保して,印刷する際に顧客マスターとつき合わせて住所を引用し印字する。ことが多いようです。
一回目の請求書発行後に顧客が引越し,その後に再発行すれば,新居に届くので、この処理でOKとしたいのですが.....
これだと初発行の請求書のクローンとはなりません。厳密な意味での再発行ではなく再作成となります。
どのように実装しましょう。請求書Tableに住所等を保持するのはスマートでないし,冗長さが目立ちます。
マスターの更新履歴を完全に確保し, 顧客データの確定日時と変更日時を保持し,マスターを引用するときは, 請求書発行日時とマッチする顧客マスタを引用する。
こちらはスマートのようですが,変更履歴が大きくなりがちで、変更履歴とマスターを同一Tableに持つか別テーブルに持つか考慮が要りますし,コーディングが煩雑になります。
結局、請求書データに住所等を埋め込むのが、PGに受け入れやすく、バグり難いのかも知れません。違和感を感じつつも流される自分がいます。
(*)この機能の必要な時=> 裁判事が発生し、請求書を発行した当時と同じ内容の請求書を要求されることがあるそうです。
一般的にはどのようにされてます? まれにしか起こらないからワープロで再現する?(これも一つの案ですね)