Web分析SQL表设计
我正在尝试为一些基本的网络分析设计表格(不使用谷歌分析) 我想记录:每页的浏览量、页面时间、浏览器、平台和国家 我的想法是创建以下表格,在每个页面中添加一行,然后增加值 页面:Id、页面、视图、TimeOnPage、BrowserId、PlatformId、CountryId 浏览器:Id、PageId、Chrome、Msie、Firefox、Safari、Opera、其他 平台:Id、PageId、Windows、OSX、Android、iOS、Linux、其他 计数器:Id,PageId[所有国家/地区作为列] 这背后的想法是,如果有数千个页面视图,那么每个表每页只有一行。问题是如何将国家/地区字段添加到此数据中?如果遵循相同的设计,我需要一个包含195列的国家/地区表,每页添加一行,并增加与视图对应的国家/地区列。但这似乎不是一个好的设计,可能只有少量页面,但如果有数百页呢 另一种方法似乎是创建一个会话表 页面:Id,第页 会话:Id,PageId,TimeOnPage,BrowserId,PlatformId,CountryId 浏览器:Id,浏览器 平台:Id,平台 国家:Id,国家 但我担心随着时间的推移,会议桌的大小。 如果有几百个页面,假设是一个流行的站点,会话表可以快速增长。因此,最大Id范围成为一个问题。对Id列使用GUID是否更好?但是,如果会话表有这么多行,这看起来不是一个好的设计?Web分析SQL表设计,sql,sql-server,database-design,analytics,Sql,Sql Server,Database Design,Analytics,我正在尝试为一些基本的网络分析设计表格(不使用谷歌分析) 我想记录:每页的浏览量、页面时间、浏览器、平台和国家 我的想法是创建以下表格,在每个页面中添加一行,然后增加值 页面:Id、页面、视图、TimeOnPage、BrowserId、PlatformId、CountryId 浏览器:Id、PageId、Chrome、Msie、Firefox、Safari、Opera、其他 平台:Id、PageId、Windows、OSX、Android、iOS、Linux、其他 计数器:Id,PageId[所
我不确定我的方向是否正确,或者最好的方法是什么?我们将非常感谢您提供一些指导。通常的设计是维护每一页的记录,然后——可能的话——将它们聚合到会话中。这从参考表开始:
:页面ID、URL。(每可能的页面一行)页面
:浏览器ID、浏览器名称。(每个站台一排)浏览器
:PlatformId,PlatformName。(每个站台一排)平台
:国家ID、国家名称。(每个国家一行)国家
:页面视图、页面ID、浏览器ID、平台ID、国家ID、日期时间李>页面视图
:SessionId,PageViewIdSessionPages
- 会话:会话ID李>
是的,数据会很大。这就是为什么要将其存储在数据库中。您将获得详细的数据,这样您就可以比预先总结的方法更详细地调查发生了什么。谢谢。我将添加PageViews表,其中包含特定页面的每个视图的详细信息,然后在分析页面上聚合数据。考虑到页面浏览量(取决于页面数量、流行度和时间)可能包含数十亿行,实现这样一个表的最佳方式是什么。NoSql?蓝色桌子?分区表?索引?