私はデータベースに精通していませんが、この設定がある場合:
Payment -> Advances -> Advance Payments
そのため、未払いの合計金額が不足しているpayment
可能性があります。advance
顧客ごとに、あなたがしたいときは、自分の会計目的のために、advance payment
を「偽装」する必要があります. どうすればそれについて行くでしょうか。advance payment
payment
今、advances
への外部キーを持ち、 への外部キーをpayments
持っadvance payments
ていますadvances
。
簡単なシナリオ:
合計100ドルの注文があります。顧客は 80 ドルを支払い、20 ドルが前払いされます。advance
そのため、これ (支払い 1) に添付 (fk'd)される (前払い 1) を作成しましたpayment
。顧客は再び注文し、今回は合計が $50 で、$40 しか支払わないため、別のadvance
(前払い 2) がその新しいpayment
(支払い 2) に関連付けられて作成されます。
顧客が支払いを決定すると、advances
apayment
が作成され (支払い 3)、(前払いadvances
1 と前払い 2) がそれに追加されpayment
ます (支払い 3)。advance
これは、システムに表示されたときに、従業員が支払い先を選択できるようにするためです。合計を取得してから金額を差し引くほど単純ではありませんpayment
。
したがって、彼らが金額を入力すると、advance payment
が作成され、それに接続さadvance
れadvance payments
ますadvances
。
ここで質問ですが、支払いによって作成された前払いを確認したい場合、どうすればよいですか?
私は自分の構造を壊したくありませんpayment - advance - advance payment
-それともそうですか? 私はちょうどテーブルにいることを考えpaymentids
ましたが、それは中間者であるとを無視advance payment
する関係を生み出します. 私はこれについて間違って考えているかもしれませんが、よくわかりません。payments
advance payments
advance
いくつかの詳細情報:
Payment Table
-------------
id : pk
amount
Advance Table
-------------
id
amount
paymentId // payment that created the advance
Advance Payment Table
---------------------
id
amount
advanceId
私が間違っていると思う提案は次のとおりです。
Payment Table
-------------
id : pk
amount
Advance Table
-------------
id
amount
paymentId // payment that created the advance
Advance Payment Table
---------------------
id
amount
advanceId
paymentId <---- add paymentid
これは構造/フローを壊し、支払いには前払いのある前払いがなくなります。
もう少し情報 - 私たちは linq と SQL Server 2008 を使用しています。それが違いを生むかどうかはわかりません。
これは非常に紛らわしいかもしれませんが、可能な限り最善の方法で説明しようとしました。