Comunidad de diseño web y desarrollo en internet online

Guardar items correctamente en base de datos

Citar            
MensajeEscrito el 05 Nov 2015 03:10 am
Hola, quisiera que me orienten sobre como guardar los items de una factura en una base de datos.

No se si seria bueno crear en una Tabla Items
donde el campo "items" contendra un JSON con los valores como id, nombre de producto, precio de todos los items de la factura

Código :

id|idfactura|items|
--|---------|-----|


o crear en la tabla ITEMS con cada producto separado, osea que si mi factura tiene 10 productos almacenar los 10 datos independientemente?

Código :

id|idfactura|producto|cantidad|precio_unitario|precio_total|
--|---------|--------|--------|---------------|------------|

Por derzz

24 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Nov 2015 12:06 pm
Pues todo depende de bajo qué circunstancias vas a tener que recuperar esos datos.

Aunque guardar un JSON con los datos parece una buena idea, si después tienes que hacer un arqueo de caja donde tienes que obtener la sumatoria de todos los items vendidos, o tienes que hacer arqueo de stock, donde tienes que obtener la sumatoria de los productos vendidos, tener esos datos en JSON complica exponencialmente las cosas respecto de tenerlos en campos separados. En este último caso en solo una consulta SQL obtienes los resultados. Mientras que si tienes esos datos en JSON estás obligado a recorrer todos los registros, pierdes la ordenación y pierdes la capacidad de agrupar registros.

Tú dirás qué es lo que más te conviene.

Por DriverOp

Claber

2510 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Nov 2015 04:55 pm
Claro, pero hacerlo por separado no daría problemas de sobre carga a mi motor de base de datos?, por decir, tengo 50 facturas con 10 items cada uno, me daría un total de 500 registros en poco tiempo, o si quiero actualizar la factura con mas items? no daria un desorden total?.
De verdad gracias por tus detalles, estoy viendo todos los pros y contras.

Por derzz

24 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Nov 2015 12:05 pm
500 registros para MySQL es nada, no llega ni a la pelusa del bolsillo. Para MySQL eso es un insulto de tabla, jajaja!.

Si has calculado que se van a generar 500 registros por día, al año tendrás unos 180 mill registros, créeme, eso es poco para MySQL.

Tengo tablas que superan el millón de registros. Y el rendimiento todavía no es un problema.

Por DriverOp

Claber

2510 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.