Creo que puede estar malinterpretando la naturaleza de las "bases de datos de documentos". Como tal, recomendaría MongoDB, que es una base de datos de documentos, pero creo que te gustará.
MongoDB almacena "documentos" que son básicamente registros JSON. La mejor parte es que entiende las partes internas de los documentos que almacena. Así que dado un documento como este:
{
"name": "Gregg",
"fave-lang": "Scala",
"fave-colors": ["red", "blue"]
}
Se pueden realizar consultas sobre "favorito-lang" o "FAVE-colores". Incluso puede indexar en cualquiera de esos campos, incluso en la matriz "fave-colors", que necesitaría una tierra relacional de muchos a muchos.
Play ofrece un complemento de MongoDB que no he usado. También puede usar el Casbah driver for MongoDB, que he usado mucho y es excelente. La consulta DSL Rogue para MongoDB, escrita por FourSquare también vale la pena mirar si le gusta MongoDB.
MongoDB es extremadamente rápido. Además, se ahorrará la molestia de escribir esquemas porque cualquier registro puede tener los campos que desee, y aún se pueden buscar e indexar. Es probable que su modelo de datos se parezca mucho al que tiene ahora, con una "colección" de usuarios (como una tabla) y otras colecciones con registros que hacen referencia a una identificación de usuario según sea necesario. Pero si necesita agregar un campo a una de sus colecciones, puede hacerlo en cualquier momento sin preocuparse por los registros anteriores o la migración de datos. Técnicamente no hay esquema para los registros de MongoDB, pero terminan organizando registros similares en colecciones.
MongoDB es una de las tecnologías más divertidas que he encontrado en los últimos años. En ese feliz sábado decidí comprobarlo y en 15 minutos fue productivo y sentí que lo "conseguí". De forma rutinaria hago una demostración en el trabajo en la que le muestro a la gente cómo iniciarse con MongoDB y Scala en 15 minutos y eso incluye la instalación de MongoDB. enchufe descarado si estás en servicios web, aquí está mi entrada de blog sobre cómo empezar con MongoDB y Scalatra usando Casbah: http://janxspirit.blogspot.com/2011/01/quick-webb-app-with-scala-mongodb.html
usted debe por lo menos ir a http://try.mongodb.org
Eso es lo que me inició.
¡Buena suerte!
Está confundiendo almacenes de datos NoSql y valor-clave. Existen bases de datos NoSql como las bases de datos Graph (Neo4J) y las bases de datos OO (db4o) que no son almacenes de datos clave-valor. Ofrecen poderosos mecanismos relacionales. –
@Vagif: Honestamente, realmente no me gusta el nombre NoSQL (o no relacional) porque define lo que no es más que lo que es. Siguiendo el mismo razonamiento, creo que el sistema de archivos pasado de moda podría llamarse NoSQL porque no es SQL o relacional. OTOH, tienes razón sobre los almacenes de datos de gráficos, no había pensado en eso. –
Bueno, tenemos a los ateos que se definen por lo que no tienen, en lugar de lo que tienen. En un mundo dominado por la religión, el ateísmo es una definición válida. En un mundo dominado por bases de datos SQL, supongo que NoSql tiene un significado. –