Duda con maestro detalle

Iniciado por Shell Root, 24 Abril 2013, 21:58 PM

0 Miembros y 1 Visitante están viendo este tema.

Shell Root

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
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Carloswaldo

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.

Shell Root

La duda es que no se como se "unen" esas tablas
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Carloswaldo

¿Cómo se relacionan? Pues tomando en cuenta lo que antes dije, las relaciones serían
detalleCotizacion.idCotizacion = cotizacion.id
detalleCotizacion.idProducto = producto.id