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 来计算当日成本
  • 通过将 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 添加到您的客户表中。您最想做的是将支付信息存储在一个完全独立的表中。您已经有一个可以存储订单的订单表,但是您没有任何方法可以将客户与订单联系起来。

我不确切知道您要做什么,但我将从以下内容开始:

  • 将 customerId 添加到您的订单表中。

  • 将欠款总额以及应付的剩余金额添加到您的订单表中(我假设此金额是基于下订单时鱼的成本;即不受未来鱼价变化的影响)。

  • 添加具有 customerId、orderId 并包含已支付和/或到期金额的付款表。使用它来跟踪客户的付款。您可以选择将状态字段添加到订单表,并在完成时将其更新为已付款(或有条件地依赖剩余金额为零)。

于 2012-11-28T07:33:25.140 回答