我正在开展一个网站分析项目。用户可以使用我的API(如Google Analytics)记录/查看其网站流量报告。
问题是,我不确定如何设置数据库结构。
我已经为用户管理目的设置了一些表格:
用户表:|| userID || userName || datReg ||
帐户信息表:|| accountInfoID || userID || fName || lName || emailAddress ||
所以我觉得我可以这样做:
网站分析表:|| analyID || userID || visitorIP || visitorCountry || pageviewCount || pageviewData
但这会扩展吗?我的意思是,使用这种结构,每天可能会插入数万行,所以几个月后不会导致非常缓慢?
根据上述想法,我会针对每次独特访问运行类似于此的查询:
INSERT INTO siteAnaly (userID,visitorIP,visitorCountry,pageviewCount,pageviewData) VALUES ("the accounts holders user ID","the visitors IP","the visitors country","the visitors apge view count","a JSON array of the visitors pageview URI's")
然后,在每个网页浏览中,将更新从上面的查询插入的那一行。增加pageviewCount
并附加到pageviewData
我的另一个想法(你可能认为是愚蠢的)是为每个用户创建一个新表,用用户ID命名。
您认为采用此类项目的最佳方法是什么?
答案 0 :(得分:0)
visitorIP
和vistorCountry
可以移到不同的表格中。这些价值肯定会重复。您希望在pageViewData
中保留哪种数据?
答案 1 :(得分:0)
它确实会有大量的数据输入,在这种情况下你需要做的是在一个点上将数据拆分到不同的表甚至数据库中,以确保不会使主数据源混乱。您很少需要查询未经处理的大部分数据,因此您的目标是:
我去看了一个很好的会议并对其进行了评论发布在我的博客上,您可能想要阅读它:
http://crazycoders.net/2012/03/confoo-2012-continous-data-processing/
祝你好运