表与多个角色的关系

时间:2014-02-20 14:42:13

标签: database database-design openoffice-base

愚蠢的问题我猜...

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

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

像这样的东西

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")

我应该如何解决这个问题?如果这可能是一个愚蠢的问题,谢谢,对不起。

1 个答案:

答案 0 :(得分: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);