gpt4 book ai didi

sql - 派生属性应该作为列复制还是每次都计算?

转载 作者:行者123 更新时间:2023-12-04 18:22:35 24 4
gpt4 key购买 nike

我猜这是空间与时间的问题。

考虑一个在线测验应用程序。在浏览测验中,对于每个测验,我希望显示它有多少问题。

  • 如果测验有 10 个问题,我可以将其显示为“10 个问题”或“中等持续时间测验”。
  • 如果测验有 5 个问题,我可以将其显示为“5 个问题”或“短期测验”。

  • Quiz表,我没有用于存储问题数量的列。
    要找到这么多问题,我可以
    SELECT COUNT(question_id) 
    FROM Quiz
    NATURAL JOIN Quiz_data
    WHERE quiz_id = '$quiz_id'

    请注意 Quiz_dataQuiz 的交叉表和 Question_bank (即它存储两个表的 PK)。

    请注意,如果我将 *number_of_question* 存储在测验中,则可能会从测验中添加/减去问题。所以除了 deleteinsert , 需要 update也是。

    问题:我应该每次都计算,还是将值存储在 Quiz 中? table ?帖子标题在一般意义上说同样的问题。

    最佳答案

    你得知道

    (1) 您的数据更改的频率,以及
    (2) 确定这个数字需要多少努力。

    作为一般建议,我会看看:

  • 如果数据很少更改->您应该计算然后存储该值。
  • 如果确定该数字的成本非常高 -> 尝试计算一次,存储并重复使用。
  • 另一方面,如果准确计数至关重要 -> 根据需要确定。

  • 这不是一个明确的是或否决定——它实际上取决于您的数据、您的要求以及计算这样一个数字/计数的成本。

    关于sql - 派生属性应该作为列复制还是每次都计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10363678/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com