2014-02-20 62 views
0

愚蠢的问题,我猜...表与多个角色的关系

我想实现一个简单的数据库与货运单。订单可以由客户发送和接收。

订单可能有一个日期和两个相对于托运人和发件人的外键。

像这样的事情

Orders(ID,Date,id_sender,id_receiver) 

简化客户表将

Customers(ID,name, surname,city) 

我注意到,我不能创建两个客户/订单的关系,其中一个是相对于外键id_sender和另一个是id_receiver。我只是试着用OpenOffice DBMS尝试建立第二种关系时出错,因为客户和订单之间的关系已经存在。

ID in statement [ALTER TABLE "Orders" ADD FOREIGN KEY("id_sender","id_receiver") REFERENCES "Customers"("ID","ID") 

我应该如何解决?谢谢,如果那是一个愚蠢的问题,我很抱歉。

回答

0

您的语句尝试创建一个包含两列(is_sender和id_receiver)的组合外键,这两列都引用Customers上的同一列,id。这可能不是你想要的。相反,您可以尝试定义两个单独的约束条件:

alter table Orders add foreign key (id_sender) references Customers (id); 
alter table Orders add foreign key (id_receiver) references Customers (id);