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

definicion del esquema fisico

Estas en el tema de definicion del esquema fisico en el foro de Bases de Datos General en Foros del Web. Hola, estoy haciendo el diseño de una base de datos en la que tengo varias tablas, clientes, proveedores,... y una de ellas es la tabla ...
  #1 (permalink)  
Antiguo 18/01/2009, 06:17
 
Fecha de Ingreso: febrero-2007
Mensajes: 79
Antigüedad: 17 años, 2 meses
Puntos: 0
definicion del esquema fisico

Hola, estoy haciendo el diseño de una base de datos en la que tengo varias tablas, clientes, proveedores,... y una de ellas es la tabla productos en la cual hay q guardarlos materiales de los q estan compuesto los productos, es decir, yo puedo tener como productos ventana, cristal, marco, picaporte, entonces tendría que indicar que ventana está compuesto por cristal, marco... sería una relacion a si misma... pero luego eso como lo guardaria en la implementacion???

Gracias,
un saludo.
  #2 (permalink)  
Antiguo 19/01/2009, 11:36
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: definicion del esquema fisico

Creo que necesitarías dos tablas para hacer esto. En una de ellas almacenarías los productos como dices:

Productos
- id
- nombre

y en la otra almacenarías la relación de cada producto con los productos que lo forman.

FormadoPor
- producto_entero
- producto_parte

* Los nombres de las tablas y los campos deberías cambiarlos, ese nunca ha sido mi fuerte xD

De ese modo en la tabla Productos tendrías los registros:

1 / Ventana
2 / Cristal
3 / Marco

y en la tabla "FormadoPor" tendrías los registros:

1 / 2
1 / 3

es decir:

1 (Ventana) / 2 (Cristal)
1 (Ventana) / 3 (Marco)

No sé si me he explicado bien. Si no es así lo intento de nuevo ;)

Un saludo
  #3 (permalink)  
Antiguo 19/01/2009, 15:18
 
Fecha de Ingreso: febrero-2007
Mensajes: 79
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: definicion del esquema fisico

ummm, no te he entendido muy bien, a ver, tengo una tabla productos con sus datos y luego una tabla con las relaciones, q es lo q no te entiendo...

FormadoPor
- producto_entero
- producto_parte

es q no lo veo, pq una ventana por ej, seria el producto_entero y luego(cristal, marco...) serian producto_parte... entonces... ahí en productos parte tendría más de un elemento, no?

Bueno, siento si soy torpe, jeje, pero no lo veo...

Gracias!!!
  #4 (permalink)  
Antiguo 19/01/2009, 15:34
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: definicion del esquema fisico

Bien. Tenemos los siguientes productos con sus respectivos códigos:

Productos
id / nombre
1 / Ventana
2 / Cristal
3 / Marco
4 / Puerta
5 / Picaporte

Ahora nos paramos a pensar. Una ventana tiene cristal y marco (por ejemplo, pues podría tener picaporte). Una puerta tiene marco y picaporte (tambiénj podría tener cristal, pero eso no lo tenemos en cuenta) .

Entonces para realizar esto vamos a necesitar que un producto (ventana) contiene varios productos (cristal y marco) . A la vez, tenemos que un producto (marco) está contenido en varios productos (ventana y puerta) . Esto es lo que llamamos una relación de varios a varios. Y para implementar esta relación es necesario crear una tabla nueva. Esta tabla tiene por cada relación, un registro, es decir, en este caso tendrá un registro para la relación ventana-marco, otro para la relación ventana-cristal, otro para la relación puerta-marco y otro para la relación puerta-picaporte. Esta relación se establece en la tabla FormadoPor utilizando los ids de los productos que queremos relacionar. De esta forma la tabla FormadoPor nos quedaría así (sin tener en cuenta lo que hay entre paréntesis):

FormadoPor
producto_entero / producto_parte
1 (ventana) / 2 (cristal)
1 (ventana) / 3 (marco)
4 (puerta) / 3 (marco)
4 (puerta) / 5 (picaporte)

Así, si por ejemplo quieres obtener todos los productos que forman una ventana puedes hacer la siguiente consulta (en mysql):
Código:
SELECT Productos.id, Productos.nombre FROM Productos INNER JOIN FormadoPor ON FormadoPor.producto_parte=Productos.id WHERE FormadoPor.producto_entero=1
Espero que te haya quedado un poco más claro. De no ser así, insiste que lo intento de nuevo

Un saludo
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 10:55.