我正在做一个网站分析项目。用户可以使用我的 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 命名的新表。
您认为处理这样的项目的最佳方法是什么?