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
--SI LA LLANTA ESTA EN UNA BODEGA --SOLO PODRÍA SER MOVIDA HACIA UNA UNIDAD O UN PROVEEDOR --SI LA LLANTA ESTA EN UN PROVEEDOR --SOLO PODRÍA SER MOVIDA HACIA UNA BODEGA --SI LA LLANTA ESTA EN UNA BODEGA --PODRÍA SER MOVIDA HACIA UNA UNIDAD O PROVEEDOR DECLARE @CUI VARCHAR(MAX) DECLARE @UI VARCHAR(MAX) -- AQUÍ DEBERÍA IR OTRA SENTENCIA COMO UNA BUSQUEDA QUE ME RESTRINGA A LA UBICACIÓN FÍSICA DE LA LLANTA SET @CUI = 1 SET @UI = (SELECT Descripcion FROM Bodega WHERE @CUI = IdBodega) SELECT @CUI AS Código_Ubicación_Inicial SELECT @UI AS Descripción_Ubicación --LO MISMO HARÍA PARA SELECCIONAR LA UBICACIÓN FINAL DECLARE @CUF VARCHAR(MAX) DECLARE @UF VARCHAR(MAX) -- AQUÍ DEBERÍA IR OTRA SENTENCIA COMO UNA BÚSQUEDA QUE ME RESTRINGA A LA UBICACIÓN FÍSICA DE LA LLANTA SET @CUF = 1 SET @UF = (SELECT Descripcion FROM Bodega WHERE @CUF = IdBodega) SELECT @CUF AS Código_Ubicación_Final SELECT @UF AS Descripción_Ubicación --CON LA SALVEDAD DE QUE LA TABLA BODEGA PODRÍA SER CUALQUIER --OTRA TABLA QUE PUEDA SER UNA UBICACION FISICA --EN ESTE CASO BODEGA, PERO TAMBIÉN UNA UNIDAD O UN PROVEEDOR