簡體   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