¿La base de datos de nuestra empresa se ajusta mejor a MongoDB o se ajusta mejor a una base de datos de tipo SQL?

A menos que su base de datos esté recibiendo una gran carga de cientos de clientes, probablemente será más fácil usar una base de datos SQL. Pero debe considerar la estructura de su base de datos y diseñarla como una base de datos relacional.

Usted dijo en la pregunta que los vendedores serían columnas y filas de productos. Ese no es un buen diseño de base de datos. En cambio, debería ser algo como esto:

Tabla 1: vendedores
Columnas: id, nombre, dirección, teléfono, etc.

Tabla 2: Productos
Columnas: id, descripción, etc.

Tabla 3: Precios
Columnas: productid, vendorid, precio

Luego, cuando ejecuta una consulta, hace una fusión entre esas tablas. Entonces, si necesita conocer a todos los proveedores con un determinado producto, simplemente busque en la tabla de precios por producto y obtenga una lista de todos los proveedores que lo tienen y sus precios.

Cuando lo cree así, probablemente será menos necesario cambiar la estructura de la base de datos. Le recomiendo que lea un poco sobre el diseño de bases de datos relacionales.

No está muy claro en la descripción cómo está almacenando las propiedades del artículo, pero si la relación entre el proveedor y los productos es importante, este debería ser el diseño de su colección mongodb

vendedor
{ _número de identificación,
nombre: cadena,
.
.
.}
producto
{
_número de identificación,
vendor_id: número
nombre: cadena,
.
.
.
categorías: [cat_1, cat_2, cat_3]
}

Los documentos sin esquema de MongoDB le permiten almacenar diferentes categorías de productos para cada producto y puede hacer referencia fácilmente a todos los proveedores de productos que le permiten consultar todos los productos de un proveedor fácilmente

De cualquier manera debería funcionar, por lo que debe basar su decisión en la experiencia interna que tiene actualmente.

Su esquema parece ser bastante simple y estructurado, por lo que desde una perspectiva de diseño, ERD estándar y el uso de RDBMS encajarían bien.

El diseño de la colección también es claro y se puede usar Mongo. Al mismo tiempo, no tiene un caso claro “debe tener Mongo”.

Desde la perspectiva de madurez tecnológica y estabilidad de producción, es preferible RDBMS.

Creo que MongoDB es mejor usar si:

  • la estructura de datos puede cambiar con frecuencia sin previo aviso
  • desea centrarse en pequeños datos (no quiere que los documentos de Mongo sean demasiado grandes)
  • desea agrupar datos de manera jerárquica

Si necesita consultas ad hoc, entonces SQL generalmente se ajusta mejor.

Eso es demasiado amplio como respuesta. En su caso específico, usaría SQL.

More Interesting

¿Cómo acercarme a un proveedor si quiero comenzar un negocio de envío directo con los productos que están fabricando? ¿Qué debo estar preparado para presentar en esta negociación entre mi proveedor y yo?

¿Tiene sentido que las startups tengan gerentes de producto?

¿Cuál debería ser mi estrategia si he desarrollado una reputación como un loco? debería yo a. caminar con un cartel que dice que el final está cerca b. comenzar a publicar toneladas de cosas en internet c. no tiene una estrategia particular

¿Qué sucede cuando liberas una parte de tu servicio después de que ya hayas pagado a los clientes que lo usan?

Cómo contratar personas para administrar mi negocio sin que comiencen el suyo en California

¿Qué minorista tiene un éxito similar al ofrecer pagos móviles que no sean Starbucks?

¿Fue una buena decisión estratégica para Intel adquirir Mobileye?

¿Qué hace Bill.com?

¿Cuál es su ventaja competitiva cuando su producto se puede copiar fácilmente?

¿Cuál es la mejor manera de encontrar clientes para una empresa de ingeniería estructural pequeña y altamente capaz?

¿Dónde está el mejor lugar para encontrar un entrenador gratuito para mi startup?

¿Cómo podemos implementar la estrategia del océano azul en el negocio de namkeen y papas fritas?

¿Cuáles son los gastos que debemos tener en cuenta al iniciar el inicio web?

¿Se puede mejorar la aplicación móvil Starbucks de una manera que tenga un impacto financiero significativo en la empresa?

¿Cuáles fueron las 4 o 5 decisiones clave que Mark Zuckerberg tomó en los primeros días de Facebook?