这可能是一个相当直接的。我正在玩一个我想要创建的小应用程序。我有一个用户提交“buy_price”和“sell_price”的表单。如果他们已经亏损或获利,我会尝试解决问题。在数据库中有一个列可以更好地处理“保证金”,即“margin coulmn = sell_price-buy_price”(我将如何做)。或者在php中做到这一点会更好。
提前谢谢。
丹
编辑:我使用数据库是因为我存储了数据,然后他们可以查看他们的购买历史记录。然后我想为那些利润率最高的人制作一个诸如“最佳交易”之类的部分。
答案 0 :(得分:3)
我绝对不会在数据库中存储这么简单的计算值 - 维护可能会超过效率的任何边际收益。
即使没有存储该值,您仍然可以选择在检索时使用MySQL
)还是使用PHP计算值。
SELECT buy_price, sell_price, (buy_price - sell_price) AS margin FROM x
除了SQL
之外,我还是会在使用PHP
进行渲染时计算它。
答案 1 :(得分:1)
最好在数据库中进行此计算并将值嵌入视图中:
create view vw_table as
select t.*, (buy_price - sell_price) AS margin
from table t;
为什么更好地使用视图(或在其他数据库中使用计算列)?
首先,确保在需要“保证金”的地方使用相同的定义和名称。其次,使用视图有助于将应用程序层与数据库层分开。因此,您可以更改表或列的名称,而无需重写应用程序 - 您只需更改视图即可。第三,在许多环境中,可以在大量数据上并行计算余量,而不必在应用程序中按顺序计算。 (另一方面,正在向客户端返回稍大量的数据。)
答案 2 :(得分:0)
“更好”的定义在很大程度上取决于您的应用。它通常指的是哪个操作更快,这需要你运行一个基准测试(但我猜它是PHP)。但是,速度对您来说可能不是问题,所以“更好”变得简单易用。这几乎肯定是PHP。