Je veux être en mesure d'interroger une base de données afin que je puisse savoir quelles pages sur un site web les utilisateurs visitent avant de s'inscrire. Je prévoyais d'utiliser une base de données graphique - neo4j probablement - mais je ne peux pas décider comment les données devraient être représentées. Chaque utilisateur a un ID et peut effectuer plusieurs visites, chacune avec son propre ID. Évidemment, chaque page est identifiée par son URL, et un horodatage me permet de déterminer l'ordre dans lequel les pages sont visitées. Alors, comment ai-je pu concevoir la base de données afin de pouvoir répondre à la question «Quels sont les chemins les plus communs qui mènent à l'enregistrement»? Je veux connaître les 5 pages qu'un utilisateur visite avant de finir sur notre page d'inscription.Comment représenter les chemins d'utilisateur via un site Web dans une base de données?
Je pourrais créer des noeuds pour chaque URL, mais alors j'aurais des millions d'ID d'utilisateur, je visiterais les identifiants et les horodateurs en tant que propriétés sur le noeud d'URL.
Sinon, je pourrais créer un graphique par visite, mais je ne serais pas en mesure de commencer à un seul nœud représentant la page d'inscription et de travailler à partir de là. Au lieu de cela, je devrais parcourir tous les graphiques et ne les analyser que s'ils contenaient un nœud d'enregistrement.
Si je stockais des URL et des utilisateurs en tant que nœuds, comment pourrais-je représenter les chemins à travers le site? Je pourrais facilement dire «Utilisateur A visité l'URL 1», mais ne serait pas en mesure de représenter cela après qu'ils ont visité l'URL 2 de manière intuitive.
Je suis assez perplexe ici. Toutes les données sont déjà dans une base de données relationnelle, mais je pense qu'une requête comme celle-ci la ferait tomber depuis un certain temps puisque le site a plusieurs millions de visites par mois.
Comment puis-je aborder cette question? Neo4j est-il la bonne solution?
Merci