[英]Foreign key references while receiving attributes with the same name
例如,我有两个实体:
票
法案
人们可以在这两种付款方式之间进行选择,但是这两个实体在PAYMENT实体中都有引用,在这里我收到主键: Payment ID 。 但是,如果执行此操作,则无法引用Payment_ID:
外键(Payment_ID)引用TICKET(Payment_ID)
因为,如果我收到另一个Payment_ID,则必须参考BILL 。
我在这里可以做什么? 只需使用其他名称命名主键,然后在PAYMENT中将它们设置为“ NULL”?
提前致谢。
你有两个选择
而不是两个表,而只有一个表带有类型代码。 (合并Ticket和Bill并创建一个新的列,称为type。)
解决此问题的另一种方法是制作一个链接表。 同样,您有两种选择:
PaymentDetail
-------------
PaymentID
TicketID
BillID
在这种情况下,您要将付款表连接到其他两个表,并在未使用的表中放入空值。 (请注意,这假设这两个表将具有一个ID列,并且因为此表的存在而无需为PaymentID设置一列)
要么
PaymentDetail
-------------
PaymentID
PaymentType
在这种情况下,请保留所拥有的列并添加可以是BILL或TICKET之一的类型。 这种方法的好处是,如果您有一笔以上的付款,您只需在此表中放入更多行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.