这是ER图,必须在实现所有约束的SQL代码中创建表。我制作了表格并尝试通过外键实现所有关系,我想知道这些表格是否正确。
1)部门表:
create table department(dpet_id number primary key, dept_name varchar2(15)
not null);
2)分支表:
create table branch(branch_id varchar2(5) primary number, electives varchar2(10),
dept_id number references department(dept_id));
3)课程表:
create table course(course_id number primary key, course_name varchar2(10)
not null,branch_id varchar2(5) references branch(branch_id));
4)学生表:
create table student(stud_id number primary key, stud_name varchar2(30) not null,
branch_id varchar2(5) references branch(branch_id);
5)申请人表:
create table applicant(app_id number primary key, stud_id number constraint fk
references student(stud_id) constraint stu_unq unique);
6)Applicant_branch表:
create table applicant_branch(app_id number references applicant(app_id),
branch_id varchar2(5) references branch(branch_id));
这些表是否符合ER图?
答案 0 :(得分:2)
您的ER图描绘了主题的概念模型。这是一件好事。
为了将来参考,概念模型和SQL创建脚本之间有两个中间步骤。它们是逻辑设计和物理设计。
逻辑设计将概念模型更改为逻辑模型,并添加了一些功能。逻辑模型是关系型的(在大多数情况下)。一个附加功能是外键。如果您选择标准化,则可以在此处进行标准化。
物理设计将逻辑模型更改为物理模型,并添加一些功能。物理模型用SQL术语表示;像表,行和列。它是DBMS特定的。它添加了索引和许多DBMS特定功能(如表空间映射等)等功能。在此阶段,您需要考虑数据量,预期流量和吞吐量考虑因素。
最后,将物理模型转换为创建脚本。
对于非常小的问题,这些阶段可以折叠成一个阶段,就像你似乎已经完成的那样。对于非常大的项目,最好将它们分开。
答案 1 :(得分:1)
我唯一可以补充的是学生和部门之间没有关系。这取决于你的场景,你想要与否。但我认为应该如此。这样你就可以区分某个部门的学生。
此外,您正在制作像分支机构这样的图片就是这样吗?