zoukankan      html  css  js  c++  java
  • 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;

    需要特别记住的是因为外键的存在,在进行数据库操作时可以能不会允许进行删除或者修改操作,因为外键进行了约束,可以设置外键在删除和修改时的操作属性

  • 相关阅读:
    hdu 6085 bitset优化
    hdu 6070 二分答案+线段树
    hdu 6069 区间筛
    hdu 6058 并查集
    CF 835D D. Palindromic characteristics 字符串hash
    (转)Linux整合apache和tomcat构建Web服务器
    iTunes备份文件路径
    mac下Apache添加限速模块mod_bw
    mac显示隐藏文件夹
    Mac OS X下HomeBrew安装卸载
  • 原文地址:https://www.cnblogs.com/zzuli/p/9245815.html
Copyright © 2011-2022 走看看