Utilizo bastante PHP/mySQL/CodeIgniter, escribiendo sentencias SQL para manejar/manipular datos. Siento que hago todo lo que es primitivo, y he oído cosas buenas sobre MongoDB, una base de datos sin esquemas.Necesito una introducción a la base de datos de MongoDB/NoSQL
En MySQL, los esquemas me ayudan a determinar la estructura del modelo. Normalmente, dibujo un diagrama de clases con elementos básicos como: id, título, descripción, fecha
Lo que me sorprende es que MongoDB parece increíblemente simple, es difícil comprender por dónde empezar. Por lo que escucho/leo, no tiene un esquema. ¿Cómo sé qué tipo devolverá?
¿Cómo construyo mis modelos, cómo agrego las relaciones entre las diferentes "tablas"?
¿Cuál es la forma estándar de agregar relaciones y trazar los datos? Intenté jugar con eso, pero no estaba seguro de lo que estaba haciendo de la manera correcta.
He intentado leer manuales y cosas así, pero no he podido encontrar un buen artículo que me ayude a pasar de mySQL a MongoDB.
¿Hay alguna forma pude ver comparaciones de modelos con mySQL y MongoDB? Cosas simples como CRUD.
¿Cómo empiezo? ¿Por dónde empiezo?
Sólo una respuesta parcial, pero trate de pensar en su base de datos sólo como el lugar donde se almacenan las cosas entre las peticiones. Su base de datos no es * su aplicación *, su aplicación (código) es su aplicación. La base de datos solo está ahí para * persistencia *. Esto va bien con un enfoque OOP correcto y completo, donde sus clases/objetos representan sus modelos, no donde los modelos representan la base de datos. – deceze
@deceze Tiene sentido, básicamente diseña los modelos según la aplicación, no la base de datos. – tpae
Correcto, implementas tu lógica de negocios directamente usando clases/objetos, que encarnan un cierto estado y cuidan que este estado solo cambie de acuerdo con lógica de negocio (propiedades 'privadas', setters y todo eso). La base de datos está allí para persistir ese estado una vez que el script ha finalizado. – deceze