我希望能够查询数据库,以便在注册之前找出用户访问了网站上的哪些页面。
我正计划使用图形数据库——可能是 neo4j——但我无法决定如何表示数据。
每个用户都有一个 ID,可以进行多次访问,每个用户都有自己的 ID。显然,每个页面都由其 URL 标识,时间戳允许我确定访问页面的顺序。
那么,我该如何设计数据库,以便回答“导致注册的最常见路径是什么”这个问题?我想知道用户在进入我们的注册页面之前访问的 5 个页面。
我可以为每个 url 创建节点,但是我将拥有数百万个用户 ID、访问 ID 和时间戳作为 url 节点上的属性。
或者,我可以在每次访问时创建一个图表,但是我将无法从代表注册页面的单个节点开始并从那里返回。相反,我必须遍历所有图表,并且只有在它们包含注册节点时才扫描它们。
如果我将 URL 和用户存储为节点,我如何表示通过站点的路径?我可以轻松地说“用户 A 访问了 URL 1”,但无法表示在那之后他们以直观的方式访问了 URL 2。
我在这里很困惑。所有数据都已经在关系数据库中,但我认为这样的查询会在相当长的一段时间内降低它,因为该网站每月有几百万次访问。
我该如何处理?neo4j 甚至是正确的解决方案吗?
谢谢