2011-09-13 75 views
2

人们通常会如何收集有关注册用户数量或剩余邮件数量(假设该站点是论坛)的站点统计信息 - 总计,今天,昨天,上周?这是关于每小时/每天/每周在用户和消息表上运行Count()还是有一个更智能的增量方法?收集站点用户统计信息

回答

3

当然,你用日期时间戳记录了所有的活动,然后查询那些日期在你想看到的两个日期之间的记录。如果这是一个现有的项目,但是,您可能尚未拥有所有这些数据,在这种情况下,您几乎陷入了困境。

如果您使这一点,虽然,通常的做法是做这样的:

比方说你有一个表,在某论坛的邮件。你可以在每个岗位在数据库中存储这样的:

CREATE TABLE forum_post 
    (
    thread_posted_to_id int, 
    user_id int, 
    message text, 
    date_posted datetime DEFAULT (getdate()) 
    ) 

CREATE TABLE users 
    (
    user_id int, 
    name text, 
    date_signed_up datetime DEFAULT (getdate()) 
    ) 

然后你可以只查询使用的,像这样从某个用户那里得到的所有帖子的计数:

select count(*) from forum_post where user_id = ? 

或者,如果你想只能在一个范围内的日期,你可以说

select count(*) from forum_post where user_id = ? and date_posted between ? and ? 

用你想要选择的数据填充问号。