我有点不确定在这里问这样的问题是否正确,因为这可能是一个编码标准而不是一个问题。
我在一个团队中工作,与另一个成员就如何获取条令查询中的列进行了争论。他说,在获取记录时,我们应该按名称选择所有列,而我支持只获取完整的行和必需的列。
我将展示代码版本的示例:
我的版本:
public function getRecord($fromDate, $toDate)
{
$query = $this->createQueryBuilder('table')
->andwhere('table.sendFrom <=:sendFrom')
->andwhere('table.sendTo >=:sendTo')
->setParameter('sendFrom', $fromDate)
->setParameter('sendTo', $toDate)
->getQuery();
return $query->getResult();
}
他们的版本:
public function getRecord($fromDate, $toDate)
{
// Sorry had to hide column names
$query = $this->createQueryBuilder('table')
->select('table.id,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.sendFrom,table.sendTo,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.sendTo,'
. 'table.sendFrom')
->andwhere('table.sendFrom <=:sendFrom')
->andwhere('table.sendTo >=:sendTo')
->setParameter('sendFrom', $fromDate)
->setParameter('sendTo', $toDate)
->getQuery();
return $query->getResult();
}
虽然我发现我的版本更具未来的证据,就像我们在表中添加了一个新列一样,但我们不必在所有查询中添加新的列名,它们的论点是,它们的版本更安全、更快速。当我要求他们提供证据时,他们拒绝了。
我想征求您对以下方面的意见:
-
我的论点是对还是错?
-
如果我是对的,那么我可以向团队提供什么证据/论据