Я хочу иметь возможность запрашивать базу данных, чтобы я мог узнать, какие страницы на сайте посещают пользователи перед регистрацией.
Я планировал использовать графовую базу данных - вероятно, neo4j - но я не могу решить, как должны быть представлены данные.
Каждый пользователь имеет идентификатор и может совершать несколько визитов, каждый со своим идентификатором. Очевидно, что каждая страница идентифицируется по ее URL, а временная метка позволяет мне определять порядок посещения страниц.
Итак, как я могу заняться проектированием базы данных, чтобы я мог ответить на вопрос «Каковы наиболее распространенные пути, ведущие к регистрации»? Я хочу знать 5 страниц, которые посещает пользователь, прежде чем попасть на нашу страницу регистрации.
Я мог бы создавать узлы для каждого URL-адреса, но тогда бы я имел миллионы идентификаторов пользователей, идентификаторов посещений и отметок времени в качестве свойств на узле URL.
В качестве альтернативы, я мог бы создать один график за посещение, но тогда я не смог бы начать с одного узла, представляющего страницу регистрации, и вернуться оттуда. Вместо этого мне придется перебирать все графики и сканировать их только в том случае, если они содержат узел регистрации.
Если бы я хранил URL-адреса и пользователей как узлы, как я мог бы представлять пути через сайт? Я мог бы легко сказать «Пользователь посетил URL-адрес 1», но не смог бы представить это после того, как они посетили URL-адрес 2 интуитивно понятным способом.
Я здесь довольно тупой. Все данные уже находятся в реляционной БД, но я думаю, что такой запрос может привести к его отключению на некоторое время, поскольку сайт посещает несколько миллионов в месяц.
Как я могу подойти к этому? Является ли neo4j даже правильным решением?
Спасибо