2017-03-28 4 views
0

image address nodesdonnées de modélisation dans Neo4j - noeud de division - traduction

est-il recommandé de diviser un nœud d'adresse en trois nœuds: - adresse (rue + nbr) - ville - pays

Ne serait-il être plus facile d'écrire des requêtes en cherchant des événements qui ont eu lieu dans certaines villes/pays? Je me demandais aussi si je voulais que les traductions d'adresses soient stockées aussi dans Neo4J, si je devais le faire comme l'image ci-dessus.

+0

Je ne comprends pas pourquoi cette question est mise en attente pour être principalement basée sur l'opinion. Je n'ai jamais modelé une BD Neo4J Graph avant et je veux simplement demander comment je devrais construire des choses sans la rendre trop compliquée. Ce serait bien d'en savoir plus sur la raison pour laquelle quelqu'un veut que cette question soit close. Très utile! – Ielan

Répondre

1

La façon dont vous modélisez votre graphique dépend de la façon dont vous voulez interroger votre graphique. Le découpage de l'emplacement en plusieurs nœuds est recommandé si vous souhaitez effectuer des recherches par pays/ville/adresse. Maintenant, si vous ne voulez pas grouper les résultats par adresse, vous n'avez pas besoin de créer un nœud séparé pour l'adresse et vous pouvez l'enregistrer en tant que propriété sur le nœud Personne. C'est ce que je fais habituellement, parce que je ne fais pas affaire avec beaucoup de personnes au même endroit, donc pas besoin de nœud d'adresse. En ce qui concerne l'enregistrement des traductions, cela dépend également si vous les utiliserez jamais dans une requête. Si oui, vous pouvez les enregistrer comme une propriété sur la ville/pays au cas où vous en avez besoin. L'image ci-dessous montre enter image description here comment j'aborde généralement ce problème. Notez que j'utilise également un seul type de relation dans l'arbre de localisation. Si vous voulez filtrer les gens en vivant sur la même adresse, vous pouvez également ajouter le noeud d'adresse. enter image description here

+0

Dans ce cas, il doit y avoir une limite entre la personne et la ville et une limite entre la personne et le pays. Parce qu'un nom de rue peut apparaître dans plusieurs villes ou pays. La même chose pour les villes apparaissant dans plus d'un pays. Sinon, nous ne saurions pas dans quel pays la personne habite si City est connectée à plus d'un nœud de pays. – Ielan

+0

Si je voudrais faire le modèle comme ça, je serai capable d'écrire des requêtes pour voir quelle personne est connectée à quelle personne via leur adresse similaire, mais je suppose que je ne vais pas avoir un bon résultat visuel sont connectés de cette façon. – Ielan

+0

Vous pouvez créer une relation entre des personnes vivant sur la même adresse avec cette requête. 'MATCH (p: Personne) - [: IS_IN] -> (a) <[: IS_IN] - (p1: Personne) MERGE (p) - [: SAME_ADDRESS] - (p1)' –

0

image

Je veux vraiment avoir des statistiques sur les personnes de certaines villes/pays qui attented certains événements le plus. Donc, je suppose qu'il est préférable de garder la ville et le pays dans un noeud séparé. Mais je veux aussi connecter les gens vivant sur la même adresse. Alors je suppose, il est préférable de garder la ville et le pays dans le même nœud d'adresse. Puis-je faire les deux (comme dans l'image ci-dessus)?

+0

Ce n'est jamais une bonne idée de créer un nœud séparé et de l'enregistrer en tant que propriété. J'ai ajouté et l'exemple si vous avez des adresses aussi –