하나의 테이블의 한 필드가 두개 이상의 테이블의 외래키가 될 수 있나요?
AND조건으로 말고 OR조건으로 말입니다.
예)
create table student( /* 학생테이블 */
name varchar(20),
age smallint
);
create table profess( /* 교수 테이블 */
name varchar(20),
subject varchar(10)
);
create table login( /* 로그인 테이블 */
name varchar(20),
id varchar(10),
FOREIGN KEY(name) references student(name), <--- 요부분
FOREIGN KEY(name) references profess(name) <--- 요부분
);
==================================================
위와 같은 경우 로그인 테이블의 name은 학생 테이블과
교수 테이블의 name으로 외래키를 지정해주고 싶은데
위와같이 하면 AND로 걸려서 학생(student)테이블과 교수
(profess)테이블에 둘다 존재하는 값만이 유효하게 되던데..
제가 바라는 건 학생(student)과 교수(profess)테이블이
OR로 걸려서 두 테이블 중 하나에만 존재해도 값이 유효하게
할 수는 없는 지요?
즉, "로그인 테이블에는 학생 또는(OR) 교수 의 아이디 값이
존재한다." 라는.. 걸 표현하려고 하는데요...
이 방법이 아니라도 위와 같은 개념으로 테이블 구성을 할 수
있는 방법이 없는 지요? (프로그램상이나 트리거 같은거 쓰지
않구 제약조건만으로요..)
도와주시면 대단히 감사하게 생각하겠습니다...
그럼.
|