Database 规范化-重复使用外键

Database 规范化-重复使用外键,database,foreign-key-relationship,database-normalization,Database,Foreign Key Relationship,Database Normalization,当规范化数据时,在同一个表中重复一个外键是否可以接受 e、 g.快递公司有一个订单表格和一个客户表格,订单表格将记录从哪个客户取货(客户ID),并且还将有一个列,显示它要交付给哪个客户(也是客户ID)。这是完全可以接受的;这两个索引将分别维护。这两种关系可以分别使用 select item, name, address from orders inner join customers on orders.sender = customers.id where orders.id = 5; sel

当规范化数据时,在同一个表中重复一个外键是否可以接受


e、 g.快递公司有一个订单表格和一个客户表格,订单表格将记录从哪个客户取货(客户ID),并且还将有一个列,显示它要交付给哪个客户(也是客户ID)。

这是完全可以接受的;这两个索引将分别维护。这两种关系可以分别使用

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;