代码之家  ›  专栏  ›  技术社区  ›  Arindam Roychowdhury

我们是否应该将结果保存在数据库模型中,以便随时使用数据进行计算?

  •  0
  • Arindam Roychowdhury  · 技术社区  · 7 年前

    我正在尝试创建一个报告卡模型。我有:

    Question ids, answers selected for each question by candidate, correct answer id of each question, weight of each question. 
    

    “我的报告卡模型中的etc 或者 我是否应该在每次查看此报告卡的详细视图时计算所有内容?

    我目前的模型:

    class ReportCard(models.Model):
        exam = models.OneToOneField(Exam)
    
    class ExamChoiceMade(models.Model):
        report_card = models.OneToOneField(ReportCard)
        question_no = models.PositiveIntegerField(default=0)
        answer_chosen = models.PositiveIntegerField(default=0)
        is_correct = models.BooleanField(default=False)
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Midhun C Nair    7 年前

    你需要记住的第一件事是,无论你做什么决定,都会有取舍。在你所有的选择中,你需要考虑最好的选择。

    在web中,您主要需要将可伸缩性作为与性能权衡相关的主要问题。 一个很好的做法是保持轻计算(如在非资源饥渴)领域作为 model-properties 因此,它们将充当表的字段,但从不存储,而是按需计算。 现在,当我们考虑按需计算时,如果它需要大量资源,您的响应将非常缓慢。我们应该非常小心地保持我们的响应时间<100毫秒用于任何正常的(甚至对于终端用户来说也是正常的)操作。

    但是,您上面提到的文件似乎并不需要资源,因此可以 model property .