¿Qué base de datos usar para hacer un pequeño sistema de gestión de inventario?

Quiero hacer una aplicación de sistema de gestión de inventario para pequeñas empresas en Java, para Windows 7,8,10. He usado sql server express (pero tiene un límite de 10 gb) y un poco de mysql pero sé que hay otros productos como postgresql, sqlite y mongodb. ¿Cuál debería ser mejor para usar?

Estoy confundido debido al límite de 10 gb en el servidor sql (debería decirle al cliente que tiene que eliminar los datos después de que supere los 10 gb), muchos dicen que mysql tiene un rendimiento y una estabilidad deficientes. Cualquier ayuda sería genial.

¡Nadie que quiera comprar su pequeña aplicación Java necesitará más de 10 GB para almacenar información en su inventario! Si tuviera una organización tan grande, estaría utilizando las funciones de gestión de inventario de su sistema ERP preferido. Tenga en cuenta también que si utiliza una arquitectura en niveles adecuada, podrá ofrecer varias opciones de base de datos.
Debe proporcionar más detalles sobre sus requisitos y limitaciones para que podamos brindarle una buena recomendación. ¿Proyecto único o una aplicación para revender a muchos clientes? ¿Está en red o se ejecuta en una red local con múltiples usuarios? ¿Es la implementación basada en la nube una posible necesidad? "Rendimiento y estabilidad" no tienen significado sin el contexto de sus necesidades y entorno. El límite de 10 gigas debería ser la menor de sus preocupaciones, el último de muchos criterios en lugar del único criterio.

Respuestas (2)

10 GB es un tamaño enorme para una base de datos. ¿Estás seguro de que tu base de datos será tan grande?

Si está familiarizado con la programación en Java, puede usar H2 . Sé que OpenConcerto, que es un software de gestión de contabilidad/facturación/inventario, utiliza este formato para instalaciones locales del software, mientras que para instalaciones cliente-servidor utiliza PostgreSQL. Este proyecto es de código abierto por lo que podrías (al menos en teoría) adaptarlo a tus necesidades.

Algunas bases de datos están más orientadas al uso local, como sqlite, por ejemplo. Otros están más orientados al modo servidor-cliente, como MySQL y PostgreSQL.

Para la gestión de inventario, puede echar un vistazo a Kexi , que utiliza una base de datos sqlite para cada inventario que crea. Sin embargo, no está escrito en Java.

Sería bueno saber más sobre tu proyecto. Si es para uso personal o si planea vender su software. Si se prevé el acceso concurrente de varios usuarios, en lectura y/o escritura y más detalles técnicos.

2 usuarios simultáneos, planean vender, no sé el tamaño de la base de datos a la que se destinará. Pero no quiero decirle al cliente que solo puede almacenar 10 gb de datos. El cliente tampoco sabe cuántos datos va a utilizar. El software es para joyerías con 2 personas manejándolo.
(A) Estoy de acuerdo con la sugerencia de probar la base de datos H2. El autor del proyecto tiene muchos años de experiencia en la construcción de sistemas de bases de datos. Se ejecuta en Java puro. Bastante potente en términos de características. Se puede utilizar incrustado en una aplicación o como servidor. (B) Para desarrollar la interfaz de usuario y el servidor de aplicaciones, recomiendo encarecidamente a Vaadin para escribir su aplicación en Java puro pero renderizado automáticamente en un navegador web utilizando tecnologías web estándar.
@BasilBourque hubo un error "Se encontraron algunos problemas con la combinación externa derecha. Internamente, se convierte a combinación externa izquierda, que no siempre produce los mismos resultados que otras bases de datos cuando se usa en combinación con otras combinaciones. Este problema está solucionado en H2 versión 1.3". Después de ver esto, ¿cómo puedo usarlo y asumir que también es confiable en otras funciones?
@OuzoPower hubo un error "Se encontraron algunos problemas con la combinación externa derecha. Internamente, se convierte a combinación externa izquierda, que no siempre produce los mismos resultados que otras bases de datos cuando se usa en combinación con otras combinaciones. Este problema está solucionado en H2 versión 1.3". Después de ver esto, ¿cómo puedo usarlo y asumir que también es confiable en otras funciones?
El error está oficialmente en la página h2database.com/html/faq.html
@Shreyansjain "... ¿cómo puedo usarlo y asumir que es confiable?": nunca asuma que una biblioteca o herramienta es confiable. ¡Pruébalo! Cada pieza importante de software tiene errores, problemas y limitaciones. Agravado aún más por un entorno en constante cambio de sistema operativo, JVM, controladores, bibliotecas y demás. Escriba y use pruebas unitarias, pruebas de integración, pruebas de aceptación, pruebas de aserción. Pruebe incluso las cosas más básicas, como redondear un centavo al centavo (el redondeo de 0,05 debería dar como resultado 0,05), por lo que fui uno de los primeros en descubrir que Apple envió un traductor de código Rosetta defectuoso a millones de usuarios de Mac.
@BasilBourque Nuevamente, gracias por el consejo.
@Shreyansjain Los errores son otra razón para usar productos de código abierto para partes críticas de su sistema, como un motor de base de datos. Los errores se conocen y discuten abierta e inmediatamente. Cualquier interesado puede estudiar la fuente para investigar. Con productos patentados, los errores a veces se revelan y otras veces no, y ciertamente no se revelan de inmediato. Hay que esperar la magnanimidad de los directivos de la empresa para conocer el problema, la causa y las posibles soluciones. Algunas licencias incluso le impiden hablar públicamente sobre errores o problemas de rendimiento.
@BasilBourque nuevamente gracias por el consejo.
@Shreyans: ¿Qué recursos que requieren mucho almacenamiento podrían requerir 10 GB? Uno de mis clientes es un joyero. Las fotos realmente bonitas en su tienda web tienen unos 700 KB cada una. Si exceptuamos los otros datos en la base de datos, un pequeño cálculo muestra que incluso si almacena sus imágenes como BLOB (lo que a menudo es una mala idea), una base de datos de 10 GB puede almacenar casi 15,000 BLOB con un tamaño de 700 Ko. O, alternativamente, casi 42.000 rutas a recursos externos. Yo mismo tengo una base de datos MySQL con 281 productos. La tabla de productos, con 46 columnas por producto, ocupa 192 KB. El tamaño de la base de datos está por debajo de medio MB, es decir, < 0,0005 GB.

Se pueden usar varias bases de datos para hacer un pequeño sistema de gestión de inventario. Puede usar Kexi aprovecha la base de datos SQLite para cada inventario que cree.

También puede utilizar la siguiente base de datos cuando planee crear un sistema de gestión de inventario, sin importar si es pequeño o grande:

• MYSQL database 
• Microsoft SQL-server database
• Microsoft Access database
• Excel file or even you can use Oracle database 

Cuando planee crear un sistema de gestión de inventario, primero debe verificar el tamaño de la empresa y luego podrá decidir qué tamaño de base de datos y qué base de datos debe usar para crear un sistema de gestión de inventario sólido y escalable. Para obtener más información, puede leer el artículo: https://i-verve.com/blog/inventory-management-systems