2011-11-12 97 views
2

我翻譯的模式,以SQL遞歸關係,我想在一個表中引用兩列,一列在另一個表 架構是如下:與SQL中外鍵的關係?

Table: Request 
(
    mem_id1, 
    mem id2, 
    approved 
) 

所需的外鍵:

request.mem_id1 will reference member.mem_id 
request.mem_id2 will reference member.mem_id 

我曾嘗試以下:

CREATE TABLE members (
mem_id INTEGER, 
f_name VARCHAR(10), 
l_name VARCHAR(10), 
address VARCHAR(40), 
name VARCHAR(20), 
domain VARCHAR(15), 
PRIMARY KEY(mem_id) 
) 

CREATE TABLE member_phone (
mem_id INTEGER, 
phone_no INTEGER, 
PRIMARY KEY (mem_id,phone_no), 
FOREIGN KEY (mem_id) REFERENCES members (mem_id) 
) 

CREATE TABLE request (
mem_id1 INTEGER, 
mem_id2 INTEGER, 
approved BIT(1), 
PRIMARY KEY (mem_id1,mem_id2), 
FOREIGN KEY (mem_id1,mem_id2) REFERENCES members (mem_id) 
) 
+1

好的。問題是什麼?我沒有看到與遞歸有關的任何東西。 – GolezTrol

+1

和你的問題是什麼? – soulcheck

回答

2

我相信你想兩個獨立的外鍵:

CREATE TABLE request (
mem_id1 INTEGER, 
mem_id2 INTEGER, 
approved BIT(1), 
PRIMARY KEY (mem_id1, mem_id2), 
FOREIGN KEY (mem_id1) REFERENCES members (mem_id), 
FOREIGN KEY (mem_id2) REFERENCES members (mem_id) 
) 
+0

哦,我試過之前,但我沒有認爲我忘了',',對不起,要求愚蠢的問題壽,我會標記你的答案謝謝你 –

+1

你不必感到愚蠢的提出問題,這是什麼網站是爲。我很高興能夠提供幫助。 –