Отношения с внешними ключами в SQL? - PullRequest
2 голосов
/ 12 ноября 2011

Я перевожу рекурсивные отношения в схеме в 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 Ответ

2 голосов
/ 12 ноября 2011

Полагаю, вам нужны два отдельных внешних ключа:

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)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...