Título: ¿puede una clave foranea apuntar a 2 o mas tablas? Publicado por: Filantropo en 15 Marzo 2020, 03:14 am Hola.
Tengo una bd sobre ventas en la que ademas del producto y cantidad se debe registrar el documento emitido que puede ser boleta o factura. Lo que tengo hecho son 3 tablas: -tbventa idVenta iddocumento <---puede ser boleta o factura -tbfactura Numerofactura -tbboleta NumeroBoleta Dentro de venta deberia estar el id del documento boleta o factura, ¿que podria hacer para que iddocumento acepte cualquier de los 2 id, sea boleta o factura? Título: Re: ¿puede una clave foranea apuntar a 2 o mas tablas? Publicado por: EdePC en 16 Marzo 2020, 14:07 pm Saludos,
- Dependerá de tu modelo de datos, hay varias opciones generales, por ejemplo no poner idDocumento en tbVenta e ir directamente a tbFactura o tbBoleta y poner ahí el idVenta. - Otra es usar una tabla auxiliar tbDocumento donde irá como valor el idFactura o idBoleta - Piensa en las consultas que vas a realizar o como vas a llenar los datos para elegir una opción adecuada. Título: Re: ¿puede una clave foranea apuntar a 2 o mas tablas? Publicado por: Filantropo en 21 Marzo 2020, 05:54 am Saludos, - Dependerá de tu modelo de datos, hay varias opciones generales, por ejemplo no poner idDocumento en tbVenta e ir directamente a tbFactura o tbBoleta y poner ahí el idVenta. - Otra es usar una tabla auxiliar tbDocumento donde irá como valor el idFactura o idBoleta - Piensa en las consultas que vas a realizar o como vas a llenar los datos para elegir una opción adecuada. Salu2 Podria ser la primera alternativa de ir a tbFactura o tbBoleta y guardar el idventa pero ¿como lograr que la propia B.D. obligue a que idventa se guarde solo en uno de ellos y no en ambos tablas? Porque si tbventa esta relacionado con tbfactura y tbboleta pues en ambos podria insertar un mismo idventa y lo aceptaria sin problemas, al momento de listar las ventas me sale que tiene ambos documentos cosa que no deberia ser asi. Otra cosa q se me ocurrio es meter una tabla adixional tbDocumento y que esta tenga el NumeroFactura y NumeroBoleta y que al meter registros solo uno de los campos deberia contener un Numero valido y el otro deberia ser null pero no se me ocurre como hacerlo desde sql. tbDocumento idDocumento NumFactura NumBoleta |