Foro de elhacker.net

Programación => 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
  1. CREATE TABLE [dbo].[producto](
  2.   [id]          [INT]            NOT NULL, -- Esté campo es autoincrementable
  3.   [referencia]  [VARCHAR](20)    NOT NULL,
  4.   [nombre]      [VARCHAR](50)    NOT NULL,
  5.   [descripcion] [VARCHAR](100)   NULL,
  6.   [valor]       [DECIMAL](18, 0) NOT NULL,
  7.   [estado]      [bit]            NOT NULL
  8. );

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
  1. CREATE TABLE [dbo].[detalleCotizacion](
  2.   [id]         [INT] NOT NULL, -- Esté campo es autoincrementable
  3.   [idDetalle]  [INT] NOT NULL, -- Esté es el que contiene el codigo del detalle, que se repite tantos productos sean ingresados
  4.   [idProducto] [INT] NOT NULL, -- Esté tiene el id del producto
  5.   [estado]     [bit] NOT NULL  -- Esté para mantener un historial y no borrar nada
  6. )

Y la de cotización tendrá, el identificador del detalle que se creo en la tabla anterior
Código
  1. CREATE TABLE [dbo].[cotizacion](
  2.   [id]         [INT]         NOT NULL,
  3.   [idDetalle]  [INT]         NOT NULL,
  4.   [referencia] [VARCHAR](20) NOT NULL,
  5.   [fecha]      [datetime]    NOT NULL,
  6.   [estado]     [bit]         NOT NULL
  7. );


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