在过去30天创建一个表有效还是有更好的方法?

时间:2013-01-13 03:09:10

标签: php mysql

基本上我有一个用户可以上传和共享文件的网站。我希望如此,以便用户可以跟踪过去30天内的下载次数,并能够分别查看这些内容中的每一天。

我正在考虑创建一个包含31列的表,其中1列为id,其余为day1,day2,day3等...每天更新此表将1天的下载量移至当天之前。

我的问题是这会有效还是有更好的方法来解决这个问题?

3 个答案:

答案 0 :(得分:3)

你最好有一个链接到你的文件表的下载表。每次下载文件时,下载表都会创建一条记录。

id
file_id
ip_address
user_agent
created

等。

然后编写一个查询来确定每天发生的下载量是一项非常简单的任务。

答案 1 :(得分:1)

为了准确确定符合条件的已用天数,我建议您确定当前日期与提交记录的日期之间的差异。利用这种方法,您可以确定应该包含哪些内容以及不应该包含哪些内容,而无需复杂的列结构。

答案 2 :(得分:0)

这不会特别有效。我希望有一个更好的方法是有一个表:

UniqueID
FileID
DownloadTimeStamp

并连续记录每次下载。通过适当的索引(FileID,DownloadTimeStamp),可以即时进行分析。

根据您每天的意思(在某些全球时间,如UTC或用户的时区),您可以将这些内容推广到:

FileID
Day
Count

如果出现性能问题,请减少分析工作。