2013-02-09 2 views
0

ERD를 가져와 관계를 캡처하기 위해 SQL 문을 작성해야하는 클래스에 대한 과제를 진행하고 있습니다. 내가 만든 SQL 문이 이러한 관계를 포착하는지 묻습니다. 특히, "의존적"은 약한 존재이며이 관계를 포착하는 방법을 알지 못합니다.SQL을 사용하여 ERD에서 테이블 및 관계 만들기

ERD : 여기

ERD

http://imgur.com/mMLsMgS

내 SQL 문이다 : 그것은 숙제 질문을 게시하는 것이 허용되지 않는 경우

CREATE TABLE Employees (
    ssn INTEGER, salary REAL, phone VARCHAR(24), PRIMARY KEY (ssn)) 

CREATE TABLE Departments (
    dno INTEGER, dname VARCHAR(150), budget REAL, PRIMARY KEY (dno), 
    managerid INTEGER, FOREIGN KEY (managerid) REFERENCES Employees (ssn)) 

CREATE TABLE Works_in (
    eid INTEGER, did INTEGER, PRIMARY KEY (ssn, did), FOREIGN KEY (ssn) 
    REFERENCES Employees(eid), FOREIGN KEY (did) REFERENCES Dept (did)) 

CREATE TABLE Child (
    parentssn INTEGER, name VARCHAR(50), age INTEGER, FOREIGN KEY (parentssn) REFERENCES Employees (ssn)) 

이이 삭제 주시기 바랍니다.

모든 도움에 감사드립니다.

감사합니다.

+0

Works_IN은 (는) 테이블이 아닙니다. 그것의 관계. 이 관계에 대해 우리는 부서 번호가있는 직원 열을 가질 수 있습니다 –

답변

1

당신은 좋은 시도를했습니다. Works_In은 테이블이 아닌 관계입니다. 그래서 모든 직원은 부서 테이블을 참조하는 부서를 가질 것입니다.

CREATE TABLE Employees (
    ssn INTEGER, salary REAL, phone VARCHAR(24),deptno INTEGER, PRIMARY KEY (ssn), 
FOREIGN KEY (parentdept) REFERENCES Departments(dno)) 

CREATE TABLE Departments (
    dno INTEGER, dname VARCHAR(150), budget REAL, PRIMARY KEY (dno), 
    managerid INTEGER, FOREIGN KEY (managerid) REFERENCES Employees (ssn)) 


CREATE TABLE Child (
    parentssn INTEGER, name VARCHAR(50), age INTEGER, FOREIGN KEY (parentssn) 
REFERENCES Employees (ssn)) 
관련 문제