Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] Datos separados - Datos juntos

Estas en el tema de Datos separados - Datos juntos en el foro de Bases de Datos General en Foros del Web. Tengo una tabla productos en el que separo el producto no solo por el producto en sí, sino por la partida en la que ha ...
  #1 (permalink)  
Antiguo 02/09/2015, 01:02
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 7 meses
Puntos: 31
Datos separados - Datos juntos

Tengo una tabla productos en el que separo el producto no solo por el producto en sí, sino por la partida en la que ha sido comprado. Siendo el campo identificativo por tanto el conjunto de partida de compra y producto.

Por otro lado tengo una tabla almacén... en el que quiero juntar todos los productos iguales, independientemente de la partida de compra en la que vinieran.

Como puedo organizar los PK y FK en ambas tablas?
  #2 (permalink)  
Antiguo 02/09/2015, 01:15
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 7 meses
Puntos: 31
Respuesta: Datos separados - Datos juntos

Acabo de cambiar de opinión, no quiero juntar los productos en el almacén, porque si lo hago puedo vender primero lo último en llegar. Como quiero usar FIFO con los productos, tengo que tenerlos en el almacén separados.

Sin embargo, en la tabla almacén tendré como PK únicamente el producto.

Estas son mis tablas:

Código SQL:
Ver original
  1. CREATE TABLE MAYOR_PRODUCTOS(
  2. PARTIDA_COMPRA NUMBER(10) NOT NULL,
  3. FECHA_COMPRA DATE DEFAULT SYSDATE NOT NULL,
  4. COD_EMPLEADO VARCHAR2(15) NOT NULL
  5. COD_PROD NUMBER(5) NOT NULL,
  6. MARCA VARCHAR2(15) NOT NULL,
  7. MODELO VARCHAR2(30) NOT NULL,
  8. CANTIDAD NUMBER(4) NOT NULL,
  9. PRECIO_COMPRA_UD NUMBER(6,2)NOT NULL,
  10. CONSTRAINT FK_PRODUCTOS FOREIGN KEY (COD_EMPLEADO) REFERENCES MAYOR_EMPLEADOS,
  11. CONSTRAINT PK_PRODUCTOS PRIMARY KEY (PARTIDA_COMPRA,COD_PROD)
  12. );
  13.  
  14. CREATE TABLE MAYOR_ALMACEN(
  15. COD_PROD NUMBER(5) NOT NULL,
  16. PARTIDA_COMPRA NUMBER(10) NOT NULL,
  17. STOCK_TOTAL NUMBER(5) NOT NULL,
  18. STOCK_RESERVADO NUMBER(5) NOT NULL,
  19. STOCK_LIBRE NUMBER(5) AS (STOCK_TOTAL-STOCK_RESERVADO),
  20. CONSTRAINT FK_ALMACEN FOREIGN KEY (PARTIDA_COMPRA,COD_PROD) REFERENCES MAYOR_PRODUCTOS,
  21. CONSTRAINT PK_ALMACEN PRIMARY KEY (COD_PROD)
  22. );
[/CODE]

Sin embargo, donde si voy a querer juntarlos es en la tabla pedidos. Cuando realice un pedido... voy a coger primero de las existencias de un producto según la partida de compra con código menor. Pero si con el producto de esa partida no lleno mi pedido cogeré ese mismo producto de la siguiente partida recibida.

Eso lo tengo que hacer a al fuerza con el código de mi programa o se puede hacer con el diseño de la tabla? Seguramente con PL/SQL se pueda, pero para hacerlo con PL lo hago con el código de mi programa. Pero si se puede hacer con el diseño de la tabla... prefiero hacerlo así.

Última edición por gnzsoloyo; 02/09/2015 a las 07:35
  #3 (permalink)  
Antiguo 02/09/2015, 07:10
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Datos separados - Datos juntos

Esas cosas no son de diseño de bases de datos sino parte de la capa de aplicacion porque ahi estas metiendo "reglas de negocio" que esas no se consideran dentro del diseño de la base.
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: campo, juntos, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:29.