Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/12/2012, 00:17
jillv
 
Fecha de Ingreso: octubre-2011
Mensajes: 13
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Rstringir que un registro sea usado en varias ubicaciones

Hola amigos del foro:

Hoy vengo con una duda, haber si logro explicarme bien.

Tengo una base de datos con unas 30 tablas entre las cuales destacan las tablas:

Llantas, que contiene información de las llantas(Neumáticos) de vehículos(buses, camiones, carros tipo sedan etc.) y un campo que es el que me atañe llamado UbicacionFisica este campo debería cambiar al momento de realizar un cambio.

Inspecciones. Esta tabla servirá para almacenar las inspecciones que se realicen a las llantas, es decir que vehículo tiene n1, n2, n3, n4 llantas en una fecha determinada. En base a esta tabla de inspecciones llenamos la tabla Movimientos

Movimientos, que contendrá información acerca de los movimientos que ha tenido una llanta es decir si estuvo en una unidad en una fecha determinada o si estuvo en una bodega física, o en algún proveedor para una reparación externa o para ser reencauchada por el proveedor.

Ahora lo que tengo de duda es ¿cómo hacer que mi base de datos cambie Llantas.UbicacionFisca, cuando yo realice un movimiento físico o mejor dicho cuando ingrese una inspección.

Se que es con un trigger pero de momento no tengo una luz para guiarme

El otro problema que tengo es como tener una restricción en BD para que el código de una llanta (INT) no se repita en dos vehículos al mismo tiempo.


de momento esto es lo que tengo pero estoy abierto a opiniones:

Código SQL:
Ver original
  1. --SI LA LLANTA ESTA EN UNA BODEGA
  2. --SOLO PODRÍA SER MOVIDA HACIA UNA UNIDAD O UN PROVEEDOR
  3.  
  4. --SI LA LLANTA ESTA EN UN PROVEEDOR
  5. --SOLO PODRÍA SER MOVIDA HACIA UNA BODEGA
  6.  
  7. --SI LA LLANTA ESTA EN UNA BODEGA
  8. --PODRÍA SER MOVIDA HACIA UNA UNIDAD O PROVEEDOR
  9.  
  10. DECLARE @CUI VARCHAR(MAX)
  11. DECLARE @UI VARCHAR(MAX)
  12.  
  13. -- AQUÍ DEBERÍA IR OTRA SENTENCIA COMO UNA BUSQUEDA QUE ME RESTRINGA A LA UBICACIÓN FÍSICA DE LA LLANTA
  14. SET @CUI = 1
  15. SET @UI = (SELECT Descripcion FROM Bodega WHERE @CUI = IdBodega)
  16.  
  17. SELECT @CUI AS Código_Ubicación_Inicial
  18. SELECT @UI AS Descripción_Ubicación
  19.  
  20. --LO MISMO HARÍA PARA SELECCIONAR LA UBICACIÓN FINAL
  21.  
  22. DECLARE @CUF VARCHAR(MAX)
  23. DECLARE @UF VARCHAR(MAX)
  24.  
  25. -- AQUÍ DEBERÍA IR OTRA SENTENCIA COMO UNA BÚSQUEDA QUE ME RESTRINGA A LA UBICACIÓN FÍSICA DE LA LLANTA
  26. SET @CUF = 1
  27. SET @UF = (SELECT Descripcion FROM Bodega WHERE @CUF = IdBodega)
  28.  
  29. SELECT @CUF AS Código_Ubicación_Final
  30. SELECT @UF AS Descripción_Ubicación
  31.  
  32. --CON LA SALVEDAD DE QUE LA TABLA BODEGA PODRÍA SER CUALQUIER
  33. --OTRA TABLA QUE PUEDA SER UNA UBICACION FISICA
  34. --EN ESTE CASO BODEGA, PERO TAMBIÉN UNA UNIDAD O UN PROVEEDOR