比方说,我有一个表thread
和一个表response
,其中我存储线程和对用户在论坛中提交的线索的响应。重复数据以提高效率
我目前计数定线程有这样的回应:
SELECT COUNT(id)
FROM response
WHERE container_id = THREAD_ID
但是,岂不是更好,只是有另一场(number_of_responses
或类似的东西)在线程表,添加1每当它被回应时它?然后查询变成这样的事情:
SELECT number_of_responses
FROM thread
WHERE id = THREAD_ID
LIMIT 1
是的,我会重复数据,但不是这种方法更有效吗?还是不推荐出于某种原因?
THREAD_ID在表中是唯一的吗?如果没有,那么你的方法不在2NF。 – danihp 2012-03-16 21:03:29