繁体   English   中英

接收具有相同名称的属性时,外键引用

[英]Foreign key references while receiving attributes with the same name

例如,我有两个实体:

  • Payment_ID(主键)

法案

  • Payment_ID(主键)

人们可以在这两种付款方式之间进行选择,但是这两个实体在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM