Buenas, lo que estoy queriendo hacer quizas se pueda hacer de otro modo pero por ahora es lo unico que se me ocurre:
Tengo una tabla pedidos, una tabla detallePedidos y una de articulos. En detallePedidos tengo el codigo del articulo y la cantidad a pedir, junto con un codigo de detalle y el codigo de pedido.
Lo que quiero hacer es agregar la cantidad del pedido al stock del articulo, pero mi problema está en que un pedido puede tener varios detallePedido y por ende, varios articulos distintos..
Cómo podría hacer para ir seleccionando de a uno e ir pasando el stock a la tabla articulos?
Ojalá me haya expresado bien y me puedan ayudar.
Desde ya, gracias ! :D
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
Consulta sql
- preguntó
- Software
- 772 Vistas
- 1 Respuestas
- solucionada
1 Respuesta
Hola @ShamiiCooper,
si tu software permite cambiar el autor, la descripción o lo que sea, tenés que asumir que ese dato va a ser cambiado en algún momento, ya sea porque se encontró un dato mal cargado o por malicia.
Un sistema no está bien hecho si funcionar bien depende de los datos que carguen las personas que lo usan.
De hecho, esto es una de las mayores inconsistencias de datos que permiten a los empleados robar dinero o mercaderías (tema para otro hilo de conversación).
Respecto de las tablas, te quedaría:
- la tabla de Articulos.
- la de Pedidos, pero sin el total. Tendrías una repetición de datos si guardás algo que puede ser calculado (con un simple SUM en este caso).
- detallePedidos, con ID, ID_Pedido, cantidad y todos los datos del Artículo que constan en el pedido real que estás modelando, como por ejemplo: descripción, precio, impuestos, etc.
Luego, pasemos a tu pregunta original: el stock, no se suma ni se agrega en ninguna parte, porque hacerlo viola la Normalización. La forma de calcular los egresos es hacer un SUM() sobre las tablas de detalles de los comprobantes de salida; los ingresos será un SUM() sobre las tablas de detalles de las entradas; el stock es la suma de lo ingresado menos la suma de lo egresado, que se calcula con un UNION sobre las tablas de los detalles, que serán isomórficas respecto de la cantidad y el código del artículo al menos.
Antiguamente, en el siglo pasado, como los RDBMS eran lentos y la potencia de cálculo poca, se violaba la Normalización en estos aspectos para hacer al software más veloz, pero se implementaba en esos términos: violando la 3ra FN para conseguir un resultado, y asumiendo la gran cantidad de código extra que esto implicaba.
Hoy, bien entrados en el siglo XXI, no hay ningún motivo para violar la normalización en estos ámbitos... aunque algún docente muy desactualizado proponga esta estrategia de almacenamiento ;-)
Saludos cordiales!
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 407130
- 1
- Jul 5, 2015
Sin Respuesta
-
- 165
- 0
- Mar 19
-
- 76
- 1
- Feb 26
-
- 189
- 0
- Ene 30
-
- 1090
- 0
- Nov 7, 2023
-
- 294
- 0
- Sep 19, 2023
-
- 302
- 0
- Ago 21, 2023
-
- 385
- 0
- May 14, 2023
-
- 355
- 0
- Abr 21, 2023
- ver todas
Actividad Reciente
Santiago2610 comentó Mar 23
Acualizar ChoiceField en djangoSantiago2610 preguntó Mar 19
Acualizar ChoiceField en djangogonzalss preguntó Feb 26
Script /boot/ scrapingParkJo preguntó Ene 30
No me deja instalar Oracleelporfirio respondió Ene 10
Actualizar la imagen con los datos devuelto en un …ovedg preguntó Dic 31, 2023
Actualizar la imagen con los datos devuelto en un …Ehdez preguntó Nov 7, 2023
Necesito en wordpress un pluging que me calcule la…pedrourday preguntó Sep 19, 2023
Alternativas a ThreeJS y BabylonJS?pedrourday preguntó Ago 21, 2023
¿Que tecnologias y lenguajes me recomiendan?Fabio respondió Jul 11, 2023
plugin de efecto circular 3d en imagenes
Ultimas Preguntas
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150460 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos