我有一个电子商务系统,用户在购买之前会经历几个阶段(访问网站,浏览目录,挑选产品,转到购买页面,插入信用等详细信息等等。)
每个事件都保存在以下SQL事件表中:
SessionId
EventTypeId (PageView, Click, Type),
EventValue (HomePage, Button-1 etc...)
Timestamp
每个会话都保存在以下会话表中(简化):
SessionId
SelectedProductId
SessionPurchaseAmount (0 for sessions without a purchase)
我的问题是如何设计数据库架构架构,以便我可以使用它来按渠道过滤/分析会话?我需要弄清楚的另一件事是如何将SQL模式展平为OLAP结构。
应该动态定义漏斗,就像在MixPanel / GA /其他网络分析平台中一样。
我想使用PowerPivot进行分析。
数据示例:
活动:
SessionId EventType EventValue Timestamp
1 PageView Home 01:01:00
1 PageView Catalog 01:02:00
1 PageView Cart 01:02:30
2 PageView Home 04:01:03
会话:
SessionId SelectedProduct PurchaseAmount
1 Dress-AA2 $12.00
2 NULL $0.00
我希望在动态定义的漏斗中看到结果数据。
例如,如果我将渠道设置为Home -> Catalog -> Cart
,我想要查看的数据是:
Home 100%
Catalog 50%
Cart 50%
谢谢!