Microsoft Access 掲示板

売上テーブルから請求書を作成するのときの仕組み

3 コメント
views
4 フォロー

売上テーブルに売上レコードを蓄積して
期間と取引先で抽出して、請求書テーブルにて請求書をつくるとき
売上テーブルのレコードにはどの請求書で請求したか、を何らかの形で残すものですか?(売上レコードの請求書番号フィールドなどに番号をいれる?)

後から誤りが発覚してつくりなおすときに請求書を削除するときには、その後の問い合わせにも対応できるように論理削除にしようと思います

削除した請求書に記載していた売上レコードは、別の請求書に記載することになると思います
番号を付与するようにしていても、新たな請求書に記載したときに上書きされてしまうので、過去の請求書に表示させられなくなります

どのような仕組みにするとうまくできますか?

積み木
作成: 2021/04/05 (月) 01:30:11
通報 ...
1

その要件は、昔からなかなか難しい要件の一つです。
いろいろな方法があると思います。

請求した通りに間違いなく、遅れもなく入金してくれれば問題はないのですが、いろいろイレギュラーなことがありますからね。

期限までに入金してくれなかったり、
一部だけ入金してきたり、
まとめて入金してきたり、
たまに、余分に入金してきたり、
・・・

こちら側にも、入力間違いとか、ありますしね。

これらのイレギュラーにも柔軟に対応できるようにするには、ある程度データに冗長性を持たせることになりますね。

売上テーブルのレコードにはどの請求書で請求したか、を何らかの形で残すものですか?(売上レコードの請求書番号フィールドなどに番号をいれる?)

自分もそのような設計にすると思います。
あと、入金日も持たせるかな。
期限をすぎても、入金されない場合は、再請求する必要がありますので、
再請求時の請求書番号も必要になりますね。
品番に再請求が発生するなら、別テーブルに履歴として保存しておく必要があるかも知れません。

後から誤りが発覚してつくりなおすときに請求書を削除するときには、その後の問い合わせにも対応できるように論理削除にしようと思います

これは、当然そうすべきでしょうね。

削除した請求書に記載していた売上レコードは、別の請求書に記載することになると思います
番号を付与するようにしていても、新たな請求書に記載したときに上書きされてしまうので、過去の請求書に表示させられなくなります

売上テーブルに、請求書番号、削除請求書番号、というフィールドを持たせるか、
別テーブルにして履歴をすべて残すか、ですね。
履歴には上記の再請求も含めて残すといいでしょう。

再請求や修正/削除がどの程度発生するかによってどちらかに決めることになると思います。
別テーブルで履歴を残すというのはそれなりにコストがかかりますので、それに見合うかどうか、検討してください。

2
積み木 2021/04/05 (月) 17:32:47 58219@ca66a

頭で考えれば単純な処理なんですが体系立てるのはなかなかむずかしいみたいですね
削除請求書番号に記載するにしても、用意したフィールドよりも削除が発生するかもしれない(常識的に考えれば2つも用意すれば十分でしょうけど)といった不安もありますね

履歴テーブルをつくるとそれなりのコストがかかるというのはどういった意味でしょうか?
保存容量や動作の軽さに影響するという意味ですか?

いっそ削除したものは、データベースには残さずに請求書発行時にPDFとして写しを作成し、確認用としてとっておく、とかが楽なのかもしれないと思ってきました

起こる確率の低いイレギュラーなことばかり考えてしまい、全然進まなくなるのが悪い癖ですね

3

履歴テーブルをつくるとそれなりのコストがかかるというのはどういった意味でしょうか?

設計する手間やコード量が増えるという意味です。
再請求や修正・削除が無制限にできるという自由度と引き換えに、作成する時間がかかるし、メンテナンスも大変そうです。
一度、作成してしまえばいいですが。

いっそ削除したものは、データベースには残さずに請求書発行時にPDFとして写しを作成し、確認用としてとっておく、とかが楽なのかもしれないと思ってきました

インボイス制度がもうすぐ始まるそうですが、請求書の発行者もなんからの形で控えを保存しておく必要があるそうです。
下記で議論してますのでご参考に。

請求書をPDFで保存するかどうか Microsoft Access 掲示板 - zawazawa