将 ER-Diagram 转换为 SQL

Convert ER-Diagram to SQL

我无法将 ER-Diagram 转换为有效的 SQL 代码。

看下面ER-Diagram

如何将此 ER-Diagram 翻译成 SQL 代码?我无法指定关系。为关系创建第三个 table 有意义吗?

CREATE TABLE Faculty (
    Fac.-Nr INTEGER NOT NULL,
    PRIMARY KEY (  Fac.-Nr)
);

CREATE TABLE Prof (
    Name VARCHAR(255) NOT NULL,
    PRIMARY KEY (Name)
);

我认为我必须使用约束,但我不知道如何正确转换关系。

我希望能够插入以下信息:

|姓名|属于|线索|

|史密斯 | Fac10 | -|

|贝克尔 | Fac10 | Fac10|

|约翰| Fac10 | -|

我是 SQL 的新手,请耐心等待 :)

不胜感激!

是的,您应该创建第三个 table 来保存将指向两个 table 主键作为 FOREIGN KEY 约束的关系。像

create table ProfFaculti (
name VARCHAR(255) NOT NULL,
Nr INTEGER NOT NULL,
primary key(name,Nr),
foreign key(name) references Prof(name), 
foreign key(Nr) references Faculti(Nr))

你实际上应该在两个 table 中都有一些 ID 列,这应该是主键并且应该在这些列上有 FK。

好吧,我不知道 "converting" 一个 ER 图到 SQL,但是当前的关系可以简单地通过两个 table 来建模:

create table profs ( pid int primary key, pname nvarchar(128), facid int );

create table facs ( fid int primary key, fname nvarchar(128), fpid int );

除了 pname 之外,您当然可以添加描述教授的所有属性,这同样适用于 table facs 中的教师属性。但是 profs 中的 facidfacs 中的 fpid 这两列充分描述了您在问题中列出的关系。

只要一个教授一次只能属于一个教员,教员只能有一个负责人,你不需要另一个 link-table 连接两者。