使用SQL从ERD创建表和关系

时间:2013-02-09 02:54:55

标签: sql erd

我正在为类分配,我必须使用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))

如果发布作业问题是不可接受的,请随时删除。

我感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分: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))