3

正常化數據時是否可以在同一個表中重複使用外鍵?標準化 - 正在重複的外鍵

例如快遞公司有一份訂單和一張客戶表格,訂單將記錄客戶從(Customer_ID)獲取物品,並且還會爲客戶提供一個列(也包括Customer_ID)。

回答

2

這是完全可以接受的;這兩個指標將分開維護。這兩個關係,可以單獨使用...

select item, name, address from orders inner join customers on orders.sender = customers.id where orders.id = 5; 
select name, address from orders inner join customers on orders.recipient = customers.id where orders.id = 5; 

或一起(小心)

select item, name as sender_name, address as sender_address, recipients.name as as recipient_name, recipients.address as recipient_address from orders inner join customers on orders.sender = customers.id inner join customers as recipients on orders.recipient = recipients.id; 

小心級聯刪除;)