ER图的构建
Posted zzuli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ER图的构建相关的知识,希望对你有一定的参考价值。
我们在完成一个项目前期,首要的工作是对需求进行分析,然后根据需求画出相应的数据库E-R图,这是我们后期建立数据库和对数据库进行操作的必要操作
这是一个小总结和示例
关系型数据库 关系 (表) student 列 id name age 记录 (一行数据) 101 terry 12 102 larry 13 Java开发 类 属性 对象(实例) 通过id查找学生的信息 id=101 sql = select * from student where id = 101; Student{ private Long id; private String name; private Integer age; } Student stu = new Student(); stu.setId(id); stu.setName(name); stu.setAge(age); ORM(对象关系映射) 关系 pojo类 student Student 列 属性 id id name name age age 记录 对象 101,terry,12 new Student(101,"terry",12); tbl_student(id,name,age) Student(id,name,age) StudentDao/StudentMapper(数据访问层,JDBC,hibernate) StudentService (业务逻辑处理层,事务处理,业务处理) StudentAction/StudentController(视图层,mvc框架) jsp 1) 一对多关系,外键维护在多的一方 tbl_clazz id name 1 一班 2 二班 3 三班 tbl_student id name gender clazz_id 101 terry male 1 102 larry male 1 103 tom male 2 104 jacky male 2 105 vicky male 3 查询出所有的学生以及该学生所在的班级 select c.*,s.* from tbl_student as s left outer join tbl_clazz as c on c.id = s.clazz_id; 2) 一对一 一对一是一对多的一种特例,外键唯一 3) 多对多 外键维护在桥表 学生 tbl_student id name gender 101 terry male 102 larry male 103 tom male 104 jacky male 105 vicky male 课程 id name credit 1 Java 4 2 JS 2 3 html 2 4 php 2 学生选课表 id student_id course_id grade 1 101 2 80 2 101 4 68 3 105 1 80 4 105 4 68 查询出id为1的学生的姓名,选修了哪些课程名称,成绩 select s.name,c.name,sc.grade from tbl_student as s,tbl_course as c, tbl_sc as sc where s.id = sc.student_id and c.id = sc.course_id and s.id = 1;
需要特别记住的是因为外键的存在,在进行数据库操作时可以能不会允许进行删除或者修改操作,因为外键进行了约束,可以设置外键在删除和修改时的操作属性
以上是关于ER图的构建的主要内容,如果未能解决你的问题,请参考以下文章
从现有 Oracle 数据库生成数据库图/ER 图的工具? [关闭]