0

私は、ERDを取得し、関係をキャプチャするためのSQLステートメントを作成する必要があるクラスの割り当てに取り組んでいます。私が作成したSQLステートメントがこれらの関係をキャプチャするかどうかを尋ねています。特に、「扶養家族」は弱い実体だと思いますし、どうやってこの関係をとらえるのかわかりません。

ERD: http: //imgur.com/mMLsMgS

ERD

これが私の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))

宿題の質問を投稿できない場合は、これを削除してください。

私はありとあらゆる助けに感謝します。

ありがとうございました!

4

1 に答える 1

1

あなたは良い試みをしました。Works_Inは、テーブルではなく関係です。したがって、すべての従業員は、部門テーブルを参照する部門IDを持ちます。

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))
于 2013-02-09T03:07:35.893 に答える