2014-02-20 91 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);