Sql server 收集站点用户统计信息

Sql server 收集站点用户统计信息,sql-server,database,Sql Server,Database,人们通常如何收集关于注册用户数量或留言数量(假设该网站是一个论坛)的网站统计数据——总数,今天、昨天、上周?这是关于每小时/天/周在用户和消息表上运行Count(),还是有更智能的增量方法?当然,您可以使用日期时间戳记录所有活动,然后查询那些日期介于您希望查看的两个日期之间的记录。但是,如果这是一个现有的项目,那么您可能还没有所有这些数据,在这种情况下,您几乎被卡住了 但是,如果您要这样做,通常会这样做: CREATE TABLE forum_post ( thread_poste

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

当然,您可以使用日期时间戳记录所有活动,然后查询那些日期介于您希望查看的两个日期之间的记录。但是,如果这是一个现有的项目,那么您可能还没有所有这些数据,在这种情况下,您几乎被卡住了

但是,如果您要这样做,通常会这样做:

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())
   )
假设您在论坛中有一个用于存放消息的表。您可以将每篇文章存储在数据库中,如下所示:

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 ?
用要选择的数据填写问号