2011-11-12 94 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

你不必感到愚蠢的提出问题,这是什么网站是为。我很高兴能够提供帮助。 –