Opciones de base de datos de documentos y gráficos

Tengo necesidades para mi sistema:
1) Amigos: es necesario calcular la distancia entre los usuarios hasta N grados, encontrar elementos comunes relacionados con el trabajo entre los usuarios. No se puede escalar bien este onmysql. Entonces, ¿la elección que supongo es una base de datos Graph?

2) Tengo campos de perfil de usuario, alrededor de 120 campos, de los cuales el 80% son campos 1: M, por lo que en mysql esto significa alrededor de 96 tablas para almacenar el 1: M. Si necesito extraer toda la información del usuario, necesito llegar a todas estas tablas. Entonces, ¿una solución aquí es una base de datos de documentos, una base de datos colunm o una base de datos de valores clave?

Actualmente he visto OrientDB que puede actuar como una base de datos de documentos y gráficos. ¿Se puede usar para las necesidades anteriores o hay mejores opciones de base de datos para esto?

Gracias.

EDITAR: El requisito para el perfil es Campos de usuario: TI es una red social de carrera, por lo que hay muchas carteras como campos que son 1: M. Entonces, si hay 120 campos y 96 de ellos son 1: M, ¿cuál es la mejor manera de almacenarlos? Ejemplo son las empresas en las que trabajó. Escuelas en las que estudiaste. Revistas que lees. Artículos que ha escrito, etc. Cada uno de estos son 1: M y hay campos de 96 como este = 96 tablas de Mysql. No puedo combinar porque algunos de estos tienen metadatos únicos. Necesito buscar en los campos y permitir una lectura rápida para mantener una buena experiencia del usuario.

Para graficar: se trata de conectar personas. Para el lanzamiento, solo estoy usando una función que es cuando ves a alguien, el sistema dirá cuántos grados te separan de esa persona. El resto de las funciones 'sociales' están disponibles después del lanzamiento. De cualquier manera en MySQL no puedo hacer esto lo suficientemente bien para escalar. SI tengo 100 amigos y cada persona como 100 amigos y, por lo tanto, para encontrar la mejor manera de orientarme entre estas personas, asumo una base de datos gráfica.

La plataforma es codeignitor PHP / Mysql para base de datos central.

preguntado el 16 de mayo de 11 a las 18:05

2 Respuestas

Calcular la distancia entre los nodos se parece mucho a una base de datos de gráficos. OrientDB se ve muy impresionante, personalmente he jugado con Neo4j, que tal vez le eche un vistazo.

Para dar una respuesta definitiva, debería proporcionar más de sus requisitos.

contestado el 16 de mayo de 11 a las 23:05

Suena como un gran escenario para RDF bases de datos - AKA tiendas triples. Si sus datos son sobre la conexión de las personas ... ¿por qué no los modela con el FOAF vocabulario en RDF. Entonces puedes usar una de las muchas tiendas triples. Si necesitas escalabilidad te recomiendo 4 tienda - una base de datos RDF distribuida escrita en C. 4store distribuirá sus datos en un clúster y podrá consultarlos con SPARQL

Definitivamente una opción a tener en cuenta en tu caso.

contestado el 18 de mayo de 11 a las 03:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.