2011-05-16 5 views
3

J'ai des besoins pour mon système:
1) Amis - besoin de calculer la distance entre les utilisateurs jusqu'à N degrés, trouver des articles communs liés au travail entre les utilisateurs. Impossible de dimensionner ce onmysql correctement. Donc le choix que je suppose est une base de données graphique?Choix de base de données de document et de graphique

2) J'ai des champs de profil utilisateur, environ 120 champs dont 80% sont des champs 1: M, donc dans mysql cela signifie environ 96 tables pour stocker le 1: M. Si j'ai besoin de tirer toutes les informations utilisateur, j'ai besoin d'atteindre toutes ces tables. Donc, une solution ici est une base de données de documents, base de données colunm ou base de données de valeur clé? Actuellement, j'ai vu OrientDB qui peut servir de base de données de documents et de graphes. Cela peut-il être utilisé pour les besoins ci-dessus ou existe-t-il de meilleures options de base de données pour cela?

Merci. Req pour le profil est des champs de l'utilisateur: Il est un réseau social de carrière donc beaucoup de champs comme portfolia qui sont 1: M. Donc, s'il y a 120 champs avec 96 d'entre eux étant 1: M comment mieux le stocker? Par exemple, les entreprises sur lesquelles vous avez travaillé. Écoles que vous avez étudiées. Magazines que vous lisez. Articles que vous avez écrits, etc. Chacun d'entre eux sont 1: M et il y a 96 champs comme ceci = 96 tables Mysql. Je ne peux pas combiner car certains d'entre eux ont des métadonnées uniques. Je dois rechercher sur les champs et permettre la lecture rapide pour garder l'expérience d'utilisateur bonne.

Pour les graphiques: Il s'agit de connecter des personnes. Pour le lancement, j'utilise seulement une fonction qui est quand vous voyez quelqu'un le système dira combien de degrés vous séparent de la personne. Reste des fonctionnalités «sociales» sont pour le post-lancement. D'ailleurs, dans MySQL, je ne peux pas faire cela assez bien à l'échelle. Si j'ai 100 amis et chaque personne comme 100 amis et ainsi forst comment mieux trouver mon chemin autour de ces personnes, je suppose un DB graphique.

La plate-forme est codeignitor PHP/Mysql pour la base de données DB.

Répondre

1

Calculer la distance entre les nœuds ressemble beaucoup à la base de données graphique. OrientDB semble très impressionnant, j'ai personnellement joué avec Neo4j, que vous pourriez jeter un oeil.

Pour donner une réponse définitive, vous devrez fournir plus de vos besoins.

+1

Ajouté plus d'info vers le haut. – Pinto90

0

Cela ressemble à un bon scénario pour RDF bases de données - AKA triples magasins. Si vos données concernent la connexion des personnes ... pourquoi ne pas le modéliser avec le vocabulaire FOAF dans RDF. Ensuite, vous pouvez utiliser l'un des nombreux magasins triples. Si vous avez besoin d'évolutivité, je recommande 4store - une base de données RDF distribuée écrite en C. 4store distribuera vos données en cluster et vous pourrez l'interroger avec SPARQL

Certainement une option à considérer dans votre cas.

Questions connexes