交通脚本数据库设计建议

时间:2011-12-24 09:17:28

标签: mysql sql database design-patterns

我想设计一个流量交换脚本来计算传入流量,并尝试返回n:m(例如1in:2out)流量比率。在数据库中,我想拥有网站信息(SITE),然后按网站跟踪流量和ip(DAILY-HITS),然后我希望每小时或每天计算交易 - 还不确定(SITE-TOTAL-HITS )。我很乐意为设计一个设计精良的交通行业数据库而提出任何建议。

现在我担心跟踪传入的点击,后来担心返回。所以基本上我真正的问题是,如何设计一个可以有效用于返回完整流量的数据库,比如过去24小时。我遇到的问题是,在编程方面,我希望拥有设计最佳的数据库,以获取过去24小时的信息,并确保我保持在n:m定量范围内。以下是我为数据库设计的内容:

SITE(只是基本信息):

  

ID,

     

url,

     

标题,

     

描述

DAILY-HITS:

  

id,

     

site_id,

     

ip,

     

日期(包括时间 - 将按小时分解),

     

金额(计算此时此ip的点击次数)。

SITE-TOTAL-HITS(可能每小时通过脚本更新 - 稍后用于计算过去24小时):

  

id,

     

site_id,

     

年,

     

月,

     

天,

     

小时

任何提示,建议或指出我正确的方向将不胜感激。提前谢谢。

2 个答案:

答案 0 :(得分:1)

以下是我对它的看法:

网站:

Same as what you have

流量:

id,
site_id,
ip,
request_DateTimeStamp <- this is a date and time for the url request

不计算在这里,只是记录在这里是为什么:

assume you do have a count column
- url is requested
- lock up a record in the database with the same date and hour and ip
- Found, update the account
- Not Found, Create a new record and set the count to 1

对于一个可能会大量更新的表来说,这是一个漫长的过程,在一小时内,来自同一个ip的多个请求将尝试更新相同的记录,他们将不得不等待彼此。

取出count列,您的过程只是通过始终创建新记录来记录传入流量。

就数据分析而言,您可以通过以下几种方式实现:

您可以尝试构建多维数据集:http://datacharmer.blogspot.com/2010/01/multi-dimensional-cubes-in-mysql.html

或者您可以创建像site_total_hits这样的信息聚合表,只需使用夜间作业更新它们,或者通常根据它们的准确程度来运行它们。

这些是我的2美分:D

答案 1 :(得分:0)

您可以使用HitLeap来执行此操作。

什么是HitLeap? HitLeap是一种流量交换,也称为自动服务我们帮助您提高网站点击率,排名(alexa,谷歌)等。我们的联盟计划提供高达50%的现金和流量佣金。它是如何工作的?注册后,您将提交要发送流量的所有网站。然后,您将通过查看其他人的网站获得免费流量。或者,您可以从我们这里购买交通包。

Go tho this link to sign up