Estructura BBDD. Máquinas y sus partes.

Tengo un problema a la hora de querer colocar como Clave Principal un Campo Calculado.

Intentaré explicar cuál es la idea de la BBDD a ver si me pueden orientar.

La BBDD es para unas piezas que a la vez están formadas por otras piezas. O sea, como si fuera una máquina que está conformada por muchas piezas.

He creado una tabla para cada pieza, ya que cada pieza tiene sus especificaciones y características.

Luego, he creado una Tabla que reúne todas estas piezas y forma lo que sería la Máquina. ¿Hasta ahí OK?

Ahora bien, yo puedo tener varias máquinas a las cuales las quiero identificar con el mismo modelo de máquina pero con Lote distinto.

Por ejemplo: SOPLADORA-S01 (sería una máquina Sopladora con un Lote S01), y puedo tener SOPLADORA-S02 (que es una segunda máquina Sopladora comprada en un lote S02)

En este caso, las Máquinas son iguales y lo que cambia sólo es el Lote. Hasta acá OK.

Ahora quiero crear un formulario que me muestre cada una de estas máquinas como un registro.

En el registro 1, la SOPLADORA-S01 en el registro 2, la SOPLADORA-S02

Pero esta estructura me debe permitir que al modificar cualquier pieza de estas máquinas, sólo afecte a la pieza asignada a esa máquina.

Entonces, las tablas que tengo de cada pieza debe guardar los datos de esa pieza estándar, pero al asignarlo a la máquina correspondiente, pasa a ser parte de esa máquina y puede sufrir modificaciones sólo en esa máquina.

Bueno, espero haber sido claro. Les pido ayuda de cómo debería estructurar esta BBDD.

Ariel

Respuesta
1

Ariel, la respuesta la has dado tu mismo. UN lote puede tener VARIAS máquinas y UNA máquina puede tener VARIAS piezas. Por eso Access pertenece al grupo Base de datos Relacionales.

Yo crearía, por ejemplo, una tabla Lotes, con IdLote( o lo que sea que identifique a un lote en particular) campo Clave, NombreLote, FechaAdquisición lo lo que sea, etc.

Otra Tabla Máquinas, con Idmáquina(te digo lo mismo de arriba), Idlote, NombreMáquina, Descripción, etc Y relaciono el Idlote con el Idlote de la tabla Lotes.

Y por último una tabla Piezas con IdPieza(aunque no sería necesario), IdMaquina, NombrePieza etc. Y la relaciono con Maquinas por el IdMaquina.

Luego puedes hacer si quieres, con Lotes un formulario único, con un subformulario Maquinas y dentro de este un subformulario Piezas, de forma que si un buen día te llega el Lote X con Y maquinas y cada una de ellas con z piezas, abres el formulario, anotas el ¿número de lote?, en el subformulario continuo Maquinas en un registro pones el nombre de una y como el subformulario piezas está relacionado con el de maquinas pones en los registros las piezas que lo componen.

Que no quieres así, pues puedes hacer simplemente Maquinas y piezas, como en la tabla Maquinas tienes un campo IdLote puedes darle un valor que lo relacione con la tabla Lotes.

Es más, hasta puedes suprimir la tabla Lotes

Gracias por la respuesta. Pero no logro que funcione correctamente.
A ver, coloco un ejemplo que es tal cual lo que vengo haciendo de forma de ejemplo. 

En esta estructura, lo que puedo hacer es que, en un formulario creo unos campos combinados que me permiten seleccionar las Piezas que conformarán la Máquina.

Código_PIEZA1 es un combinado que me deja elegir entre varios tipos de PIEZA1, y dependiendo de que pieza elija como PIEZA1 me arroja todos los datos de esa pieza.
Lo mismo Código_PIEZA2

Luego, selecciono el LOTE_Máquina de la misma forma con un combinado.

Con esto el campo calculado en la Tabla Máquina, Código_Máquina se conforme con la suma de Código_PIEZA1+LOTE

Al seleccionar los cuadros combinados, seleccioné que los datos se almacenen en la Tabla Máquina, cada uno con su campo relacionado

El problema, es lo que planteaba al comienzo.
Osea, si armo varias Máquinas que Utilizan la misma pieza, pero con distinto Lote (por eso la necesidad de llamar la Máquina con el código de pieza+lote), al modificar algún dato de la pieza se me modifica en todas las máquinas.

Lo que necesito es que una vez yo seleccione la PIEZA1, PIEZA2 y LOTE eso configure una Máquina y los datos se asignen a esa Máquina, de forma que me queden guardadas en algún lado nuevo... por así decirlo.

No me queda claro, si la máquina puede tener uno o varios lotes y estos a su vez una o varias piezas, o por la imagen que pones, la máquina tiene sus piezas independientemente del Lote.

En principio parece lógico pensar( no lo sé) es que habrá un lote de piezas, por ejemplo, el Lote 111 tiene tornillos 2 pulgadas, Arandelas de 3 pulgadas, etc y el lote 222, tornillos de 5 pulgadas, arandelas de 5 pulgadas, etc, y que cuando vas a construir una máquina eliges las piezas de un lote. En ese caso, se puede limitar los combinados de piezas, en función del lote elegido.

Si quieres, repito, si quieres, haz una copia con datos inventados y me la mandas a [email protected] y le echo un vistazo, así me aclararé mejor.

Si lo haces, en el asunto del mensaje pon tu alias Ariel, ya que si no sé quien me escribe ni los abro.

1 respuesta más de otro experto

Respuesta
1

No tengo muy clara tu explicación pero

Puedes tener una tabla de

Piezas, en tu ejemplo Sopladora

ID_PIEZA=>001, NOMBRE_PIEZA=>SOPLADORA

Puedes tener una tabla de

Lotes

ID_PIEZA, ID_LOTE, ambos llave

Y para tu tabla

Maquina podrías tener

ID_MAQUINA, NOMBRE_MAQUINA

Y finalmente, una tabla

Componentes

ID_MAQUINA, ID_PIEZA, ID_LOTE CON LOS 3 COMO LLAVE

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas