Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Bases de Datos => Mensaje iniciado por: Shell Root en 24 Abril 2013, 21:58 PM

Título: Duda con maestro detalle
Publicado por: Shell Root en 24 Abril 2013, 21:58 PM
Tengo una base de datos a la que le tengo que meter una "cotización".

Partamos de la tabla de productos, quite unos campos porque no son necesarios para lo que en este caso pregunto.
Código (sql) [Seleccionar]
CREATE TABLE [dbo].[producto](
   [id]          [int]            NOT NULL, -- Esté campo es autoincrementable
   [referencia]  [varchar](20)    NOT NULL,
   [nombre]      [varchar](50)    NOT NULL,
   [descripcion] [varchar](100)   NULL,
   [valor]       [decimal](18, 0) NOT NULL,
   [estado]      [bit]            NOT NULL
);


Ahora necesito la tabla maestro cotizacion y la tabla detalle detalleCotizacion.

Supongo que la de detalle tendrá el listado de todos los productos junto con un identificador del detalle. Es decir,
Código (sql) [Seleccionar]
CREATE TABLE [dbo].[detalleCotizacion](
   [id]         [int] NOT NULL, -- Esté campo es autoincrementable
   [idDetalle]  [int] NOT NULL, -- Esté es el que contiene el codigo del detalle, que se repite tantos productos sean ingresados
   [idProducto] [int] NOT NULL, -- Esté tiene el id del producto
   [estado]     [bit] NOT NULL  -- Esté para mantener un historial y no borrar nada
)


Y la de cotización tendrá, el identificador del detalle que se creo en la tabla anterior
Código (sql) [Seleccionar]
CREATE TABLE [dbo].[cotizacion](
   [id]         [int]         NOT NULL,
   [idDetalle]  [int]         NOT NULL,
   [referencia] [varchar](20) NOT NULL,
   [fecha]      [datetime]    NOT NULL,
   [estado]     [bit]         NOT NULL
);



No entiendo muy bien eso de las tablas maestros y detalles :s
Título: Re: Duda con maestro detalle
Publicado por: Carloswaldo en 24 Abril 2013, 22:51 PM
Creo que en la tabla de detalleCotizacion el campo debería llamarse idCotizacion y no idDetalle, y en la tabla cotizacion no es necesario el campo idDetalle, más bien relacionas cotizacion.id con detalleCotizacion.idCotizacion. Así todos los productos de la cotización los ingresas en detalleCotizacion y se relacionan con un solo campo en la tabla cotizacion.

Aunque aún no estoy seguro de cual es la duda específica que tienes con este asunto.
Título: Re: Duda con maestro detalle
Publicado por: Shell Root en 24 Abril 2013, 23:26 PM
La duda es que no se como se "unen" esas tablas
Título: Re: Duda con maestro detalle
Publicado por: Carloswaldo en 25 Abril 2013, 23:14 PM
¿Cómo se relacionan? Pues tomando en cuenta lo que antes dije, las relaciones serían
detalleCotizacion.idCotizacion = cotizacion.id
detalleCotizacion.idProducto = producto.id