我有一个表“Compra”,从中派生出“CompraVirtual”和“CompraFisica”。我也有一个表'Comprobante',从中我可以得到'Boleta'和'Factura'。Comprobante的外键引用Compra,例如,我可以使Boleta能够引用CompraVirtual,因为CompraVirtual或CompraFisica的每一行由于继承也是Compra的一行。然而这:
INSERT INTO CompraFisica (ID, Fecha, Monto_total, Medio_Pago, DNI) VALUES ('1',CURRENT_DATE,10.5,'si','20794189');
INSERT INTO Boleta (Numero, ID, DNI) VALUES ('1','1','15806955');
不起作用。只有当我让Boleta引用Compra而不是CompraFisica时,它才有效,说明Compra中没有具有所需ID的行。我怎么才能做到这一点?
我希望Comprobante能够引用Compra的任何派生表,因为继承,但它说它无法找到表时,试图这样做,它只专门与Compra,而不是与任何派生表。
1条答案
按热度按时间0wi1tuuw1#
您需要创建与
Boleta
eCompra
的关系。通过删除表CompraFisica
并添加一个名为tipo
的新行来标识compra
是否是“virtual”或“física”。在此之后,您需要创建一个新的关系
Boleta
eCompra
,并将外键设置为表compra