我在db
上有一个用户库______________________________________________
id | Name | so many details | Unique page link
______________________________________________
1 | abc | bla bla | username
因此,用户abc有一个页面xyz.com/username
我想向用户显示有关访问者的abc统计信息,例如
1 jan - 400
2 jan - 350
等等,持续7天
以及过去12个月的月份记录
jan - 49009
feb - 73849
什么是最好的MYSQL数据库表结构设计。
_________________________________________________________________
user id | day 1 | day2| and so on for 7 day | Jan | Feb | Mar
______________________________________________________________
111111 | 400 | 300 | | 4250|24534|2435
我想到了这样的事情 - 是否可以或其他优化设计?
答案 0 :(得分:2)
我不会这样对数据库进行计数。
我会将带有时间戳的记录存储为列,并在每次需要时使用GROUP BY将它们汇总。
如果这是一个报告数据库,我建议您查看具有时间维度的星型模式。
答案 1 :(得分:1)
a我认为这样的事情会更容易管理。
user_id
date
counter
对于每次访问,检查用户是否在那个日期。如果这样增加,否则创建记录。 然后,您可以使用日期(日,月,间隔等)来执行任意数量的统计数据
答案 2 :(得分:1)
您不希望按照自己的方式进行操作,因为每个用户都会有一个很长的日历 它将很快失控。
您可能希望拥有一个包含以下内容的表格:
ID | user_id | time_stamp |信息
1 | 324 | 2014/1/22 | 300
2 | 327 | 2014/1/20 | 500
3 | 324 | 2014/1/19 | 900
比你想要的信息。
选择* FROM表,其中user_id = 324 会回来
ID | user_id | time_stamp |信息
1 | 324 | 2014/1/22 | 300
3 | 324 | 2014/1/19 | 900