2013-07-23 8 views
0

J'essaie d'utiliser Neo4J pour modéliser des périphériques mobiles utilisateur. Cependant, je suis un débutant complet avec des bases de données graphiques et je suis un peu confus sur la façon de faire les connexions.Neo4J/Modélisation de périphériques utilisateur de base de données graphique

Par exemple:

  1. UserA
    • dispositif 1, OS 1, le support 1
    • périphérique 2, OS 2, le transporteur 2
  2. UserB
    • dispositif 1 , OS 2, Transporteur 2
    • Dispositif 2 , OS 1, support 1
  3. UtilisateurC
    • appareil 3, OS 3, support 1
    • périphérique 2, OS 3, support 1

Je dois pouvoir pour interroger rapidement les informations suivantes:

  • Tous les utilisateurs avec "Device 2".
  • Quelles sont les différentes configurations pour "Device 2"
  • Quels utilisateurs utilisent "Transporteur 1"
  • etc ....

Ce qui me est source de confusion que je veux connecter les utilisateurs avec le même périphérique (c'est-à-dire: périphérique 1), cependant, les appareils sont légèrement différents (c'est-à-dire: les transporteurs). Si j'essaie d'utiliser le même nœud, je perdrai l'information sur quel chemin est pour quel utilisateur.

Quelle est la meilleure pratique lors de la modélisation d'une base de données graphique? Devrais-je simplement créer différents nœuds de périphériques pour différentes configurations de périphériques? Est-ce une mauvaise pratique d'avoir plusieurs nœuds "Device 1"?

Merci à l'avance ...

+0

Voici un un échantillon de la taille des données: - 80,000+ utilisateurs - 1,000+ appareils - 600+ transporteurs - 15 OS Chaque utilisateur dispose 4+ périphérique/configuration. – Mig56

Répondre

1

Je suis un débutant aussi bien, mais la meilleure chose à faire est de commencer. Cette book est une excellente ressource pour les meilleures pratiques.

Je pense que vous pourriez avoir différents nœuds de périphériques avec des propriétés telles que 'os: os1'. Et ces appareils auraient une relation avec un noeud porteur.

Par exemple: (A) --owns -> (unité 1 os: OS1) --uses -> (Carrier1)

Chaque appareil serait son propre noeud. La meilleure chose est de jouer avec ça. Une bonne ressource pour cela est d'utiliser le cypher console. Vous pouvez tester des idées et les partager.

Hope this helps

+0

Mais les nœuds ne devraient-ils pas être connectés? Je pensais que l'avoir comme une propriété est un anti-modèle, car ce sera les mêmes données traversent plusieurs nœuds. – Mig56

+0

Par exemple, le système d'exploitation n'est pas unique à un périphérique mais plusieurs périphériques auront le même système d'exploitation. – Mig56

+0

C'est vrai pour les données répétées. Peut-être que chaque dispositif unique est un nœud et que les os sont des nœuds uniques. Ensuite, chaque appareil aurait une relation avec l'os. –

Questions connexes