-1

这可能是一个相当直截了当的问题。我正在玩我正在尝试创建的一个小应用程序。我有一个表单,用户可以在其中提交他们的“buy_price”和“sell_price”。然后我试图弄清楚他们是亏损还是盈利。最好在数据库中有一个列来计算“保证金”,即“保证金库仑 = 销售价格-购买价格”(以及我将如何做到这一点)。或者在 php.ini 中执行此操作会更好吗?

先感谢您。

编辑:我使用数据库,因为我存储数据,然后他们可以查看他们的购买历史。然后,我想为具有最高保证金的交易创建一个部分,例如“最佳交易”等。

4

3 回答 3

3

我绝对不会在数据库中存储如此简单的计算值 - 维护可能会超过效率的任何边际收益​​。

即使不存储值,您仍然可以选择是在检索时计算值(使用MySQL)还是在渲染时使用 PHP。

SELECT buy_price, sell_price, (buy_price - sell_price) AS margin FROM x

SQL除此之外,我仍然会在渲染时使用PHP.

于 2013-07-31T12:54:17.750 回答
1

最好在数据库中进行此计算并将值嵌入视图中:

create view vw_table as
    select t.*, (buy_price - sell_price) AS margin
    from table t;

为什么使用视图(或其他数据库中的计算列)更好?

首先,确保在需要“边距”的地方使用相同的定义和名称。其次,使用视图有助于将应用层与数据库层分离。因此,您可以更改表或列的名称,而无需重写应用程序——您只需更改视图。第三,在许多环境中,可以对大量数据并行计算边距,而不必在应用程序中按顺序计算。(另一方面,向客户端返回的数据量稍大一些。)

于 2013-07-31T13:01:47.347 回答
0

“更好”的定义很大程度上取决于您的应用程序。它通常指的是哪个操作更快,这需要您运行基准测试(但我猜它是 PHP)。但是,速度对您来说可能不是问题,因此“更好”变得简单,以您更容易做到的为准。这几乎肯定是 PHP。

于 2013-07-31T12:54:08.550 回答