Как представить пути пользователей через веб-сайт в базе данных? - PullRequest
2 голосов
/ 29 июня 2010

Я хочу иметь возможность запрашивать базу данных, чтобы я мог узнать, какие страницы на сайте посещают пользователи перед регистрацией.

Я планировал использовать графовую базу данных - вероятно, neo4j - но я не могу решить, как должны быть представлены данные.

Каждый пользователь имеет идентификатор и может совершать несколько визитов, каждый со своим идентификатором. Очевидно, что каждая страница идентифицируется по ее URL, а временная метка позволяет мне определять порядок посещения страниц.

Итак, как я могу заняться проектированием базы данных, чтобы я мог ответить на вопрос «Каковы наиболее распространенные пути, ведущие к регистрации»? Я хочу знать 5 страниц, которые посещает пользователь, прежде чем попасть на нашу страницу регистрации.

Я мог бы создавать узлы для каждого URL-адреса, но тогда бы я имел миллионы идентификаторов пользователей, идентификаторов посещений и отметок времени в качестве свойств на узле URL.

В качестве альтернативы, я мог бы создать один график за посещение, но тогда я не смог бы начать с одного узла, представляющего страницу регистрации, и вернуться оттуда. Вместо этого мне придется перебирать все графики и сканировать их только в том случае, если они содержат узел регистрации.

Если бы я хранил URL-адреса и пользователей как узлы, как я мог бы представлять пути через сайт? Я мог бы легко сказать «Пользователь посетил URL-адрес 1», но не смог бы представить это после того, как они посетили URL-адрес 2 интуитивно понятным способом.

Я здесь довольно тупой. Все данные уже находятся в реляционной БД, но я думаю, что такой запрос может привести к его отключению на некоторое время, поскольку сайт посещает несколько миллионов в месяц.

Как я могу подойти к этому? Является ли neo4j даже правильным решением?

Спасибо

1 Ответ

2 голосов
/ 29 июня 2010

Страница Аналитика использования сайта в вики Neo4j описывает один из возможных подходов к этой проблеме. Используемая им структура графа выглядит следующим образом: альтернативный текст http://wiki.neo4j.org/images/f/f3/SiteUsage.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...