我搜索最佳实践以改进我们在MODEL中的应用程序(在MCV模式上)
为了收集少量数据,我们可以在SQL请求上或在MODEL上进行。
Ex:关于SQL的agregate数据(我的agregateresult是别名:result_year)
SELECT
id AS product_id,
name AS product_name,
ISNULL(quantity_january, 0) + ISNULL(quantity_february, 0) + ISNULL(quantity_march, 0) as result_year
FROM
product_sale
我的模型可以这样定义(phpfriendly):
class productResult{
// define one var by sql column.
$this->resultYear = null;
function productResult(){
//here I make the link between SQL and PHP.
}
// define function for get the sql result.
public function getResultYear(){
return $this->resultYear;
}
}
// I get just the my result.
$productResult->getResultYear();
或者我想用其他方法进行处理:
例如:从我的SQL获取所有数据并在模型上进行agregate(在函数中获取我的值)
SELECT
id AS product_id,
name AS product_name,
quantity_january,
quantity_february
quantity_march
FROM
product_sale
class productResult{
// define one var by sql column.
$this->quantityJanuary= null;
$this->quantityFebruary= null;
$this->quantityMarch= null;
function productResult(){
//here I make the link between SQL and PHP.
}
// define function for get the sql result.
public function getResultYear(){
return $this->quantityJanuary
+$this->quantityFebruary
+$this->quantityMarch;
}
}
// I get just my resulyt.
$productResult->getResultYear();
此代码只是用于解释我的问题:我搜索最佳方式创建应用程序的位置......
PS:这不是PHP TAG的问题,因为它不是关于PHP的问题,而是关于所有语言模型中的SQL(PHP / JAVA / ASP / C#...等......)。 / p>
非常感谢!!
答案 0 :(得分:2)
通常,SQL旨在在聚合数据上运行良好。
此外,如果您仅传递聚合数据而不是所有数据来构建聚合,则网络使用率会降低。
因此,如果可能的话,请让sql引擎聚合您的数据并将其提取为聚合数据。相反,如果您已经在应用程序服务器(java,php或其他内容)上拥有内存中的所有数据,则可以直接在内存上聚合数据。