我正在尝试创建报告卡模型。我和我在一起:
$builder->add('company', EntityType::class, array(
'class' => Company::class,
'query_builder' => function(EntityRepository $er) use ($options) {
return $er->createQueryBuilder('c')
->where("c.id in {$options['id']}");
},
'label' => 'Company',
));
在我的ReportCard模型中创建诸如“ 总分,平均分数,正确答案的数量,问题的数量”之类的一个好主意吗?或计算所有内容,每当观众访问此报告卡的详细视图时?
到目前为止,我的模型:
Question ids, answers selected for each question by candidate, correct answer id of each question, weight of each question.
答案 0 :(得分:1)
您需要记住的第一件事是,无论您做出什么决定,都需要权衡取舍。在所有选择中,您需要考虑有史以来最好的选择。
在Web中,您主要需要将可伸缩性视为与性能折衷相关的主要问题。
优良作法是将计算得出的字段(如在非资源匮乏的情况下)保持为model-properties
,以使它们充当表的字段,但从不存储并按需计算。
现在,当我们考虑按需计算是否耗费资源时,您的响应将非常缓慢。对于任何正常的操作(即使对于最终用户来说似乎是正常的),我们也应该非常小心,将响应时间保持在100毫秒以下。
因此,对您的问题的答案是,是否按需存储或计算取决于需求。
但是您上面提到的文件似乎并不占用资源,因此可以只是model property
。