0

私は非常に単純なアプリをゼロから作成して、物事を注文してから、各顧客のコストを表示できるようにしています。

プログラミングは初めてなので、できる限り多くのことを理解し、ベスト プラクティスに従うように最善を尽くしています。

今のところ私を悩ませている問題に遭遇しました

次のテーブル構造があります

**Customers:**

id firstName lastName country days
----------------------------------------

1, john, smith, usa, 5

**Items:**

itemID, itemName, itemCost
------------------------------

1, blueFish, 20

2, dayCost, 10

**Purchases:**

id numBlueFish numPinkFish numRedFish numGreenFish
--------------------------------------------------

1, 0, 0, 2, 4

残高を表示するページに次の情報を表示できるようにしたいと考えています。

<b>Total Balance</b>

<p> Day costs: </p>
<p> Blue Fish cost: </p>
<p> Pink Fish cost: </p>
<p> Red Fish cost: </p>
<p> Green Fish cost: </p>
<p> Total: </p>

<b> Balance Owing :</b>

<p> Day costs total: </p>
<p> Blue Fish total: </p>
<p> Pink Fish total: </p>
<p> Red Fish total: </p>
<p> Green Fish total: </p>
<p> Total: </p>

上記の情報を表示するには、次のことができると考えました。

  • customers.days に items.dayCost を掛けて、1 日あたりのコストを計算します。
  • customers.numColorFish に items.colorFish を掛けて、各魚のコストを計算します。
  • 各 customers.numColorFish に対応する items.colorFish を掛けて合計を計算し、それらを合計してから、customers.days by items.dayCost の結果に加算します。

これまでのところ、私の構造は上記のすべてを行うのに問題ないと思います。

私が今できるようにしたいのは、任意の金額を支払い、残りの支払い額と合計費用を表示することです。

可能であれば、コストごとに括弧内に魚の数を入れてください。

<p> Red Fish total: $160 (4) </p>

テーブル構造を根本的に変更する必要がありますか? amountPaid 列を顧客テーブルに追加するだけで十分ですか?

支払いが行われるたびに記録するテーブルが必要ですか? これにより、顧客が支払った/負っている金額を出力することがより複雑になりますか?

そのような方法の欠点は何ですか?また、より良い実践に沿ったより良いアプローチは何ですか?

4

1 に答える 1

1

あなたの顧客は一度しか支払いをしませんか? そうでない場合は、顧客テーブルに amountPaid を追加したくありません。最も可能性が高いのは、支払い情報を完全に別のテーブルに格納することです。注文を格納するのに適した orders テーブルが既にありますが、顧客を注文に関連付ける方法がありません。

あなたが何をしようとしているのか正確にはわかりませんが、次のことから始めます。

  • 注文テーブルに customerId を追加します。

  • 注文テーブルに未払いの合計金額と残りの金額を追加します (この金額は、注文時の魚のコストに基づいていると想定しています。つまり、将来の魚の価格の変更による影響はありません)。 )。

  • customerId と orderId を持ち、支払われた金額と未払いの金額を含む支払いテーブルを追加します。これを使用して、顧客からの支払いを追跡します。必要に応じて、ステータス フィールドを注文テーブルに追加し、これが履行されたときに支払済みに更新できます (または条件付きで残りの金額がゼロであることに依存します)。

于 2012-11-28T07:33:25.140 に答える