這是空間與時間的問題,我想。派生屬性應該作爲列進行復制還是每次計算?
考慮一個在線測驗應用程序。在瀏覽測驗中,對於每個測驗,我都希望展示它有多少個問題。
- 如果測驗有10個問題,我可能會將其顯示爲「10個問題」或「中等測驗時間測驗」。
- 如果測驗有5個問題,我可能會將其顯示爲「5個問題」或「短期測驗」。
在Quiz
表中,我沒有用於存儲問題數量的列。 要找出一些問題,我可以做
SELECT COUNT(question_id)
FROM Quiz
NATURAL JOIN Quiz_data
WHERE quiz_id = '$quiz_id'
注意Quiz_data
是Quiz
和Question_bank
交叉表(即它同時存儲2表的PKS)。
請注意,如果我在測驗中存儲了* number_of_question *,則可以從測驗中添加/減去問題。因此,除了delete
和insert
之外,還需要update
。
問題:我應該每次計算一次還是將值存儲在Quiz
表中?帖子標題說明了一般意義上的同一個問題。
由於問題的數量很少發生變化,並且準確性不重要(對於'中等'/'小'),我會去存儲在一列中。謝謝! – 2012-04-28 14:56:50