我猜这是空间与时间的问题。
考虑一个在线测验应用程序。在浏览测验中,对于每个测验,我希望显示它有多少问题。
- 如果测验有 10 个问题,我可以将其显示为“10 个问题”或“中等持续时间测验”。
- 如果测验有 5 个问题,我可以将其显示为“5 个问题”或“短期测验”。
在Quiz
表中,我没有用于存储问题数量的列。要找到这么多问题,我可以
SELECT COUNT(question_id)
FROM Quiz
NATURAL JOIN Quiz_data
WHERE quiz_id = '$quiz_id'
请注意,这是一个和Quiz_data
的交叉表(即它存储两个表的 PK)。Quiz
Question_bank
请注意,如果我将 *number_of_question* 存储在测验中,则可能会从测验中添加/减去问题。因此,除了delete
and之外insert
,还需update
要这样做。
问题:我应该每次计算,还是将值存储在Quiz
表中?帖子标题在一般意义上说同样的问题。