mysql数据库对象关系映射_MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql数据库对象关系映射_MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2902字,纯文字阅读大概需要5分钟。
内容图文
![mysql数据库对象关系映射_MySQL](/upload/InfoBanner/zyjiaocheng/576/8cd663b066d5462cadb6eae50fa87aec.jpg)
mysql数据库对象关系映射
1.对“对象关系映射”的理解
a.对象:可以理解为java中的类
b.关系:可以理解为数据库的表
c.映射:这是因为java中的数据的类型与数据库的数据类型是有些不同的,如何将java中的类型的数据用数据库中的数据类型来存储起来,这就映射。
同时,还有当java中的两个对象之间是有关系的,那么在存储在数据库中时,也需要用一种方式来体现出这种存在的关系,而不能是两个
不相关的两张表,这也需要映射出来这种关系。
2.表与表之间的关系类型可以分为以下四种:
多对一,一对多,多对多,一对一
3.分别对这四处种关系进行示例说明
a.多对一(一对多和多对一,其实是看的角度不同,实际上可以看成同一种)员工与部门之间的关系
有以下两个java对象:
对象类:
[java] Department int id; String name; Set employees=new HashSet(); Employee int id; String name; Department dept;
员工与部门,这两者是典的多对一的关系,多个员工可以属于同一个部门,一个部门中可以有多个员工。
注意:在实际开发时,如果要设计一个员工管理系统,那么在进行对象实体类的设计时,就是按照上面
设计方式来设计员工类和部门类。在员工 类中有一个Department dept属性,而没有直接用int dept_no,
因为样更加符面象对象的设计思想。
对应的数据库的表为:
[sql] create department( id int primary key, name varchar(20) ); [sql] create employee( id int primary key, name varchar(20), dept_id int, constraint dept_id_FK foreign key(dept_id) references department(id) );
注:两个表之间的关系,多对一,用外键来体现。一般外键的应该放在多的一方,在这里也就是放在employee员工表中。
b.多对多的关系 学生与老师之间的关系
java类对象:
[java] Teacher int id; String name; Set students=new HashSet(); Student int id; String name; Set teachers=new HashSet();
对应的数据库中的表:
[sql] create table teacher( id int primary key, name varchar(20) ); create table student( id int primary key, name varchar(20) );
注:对于多对多的关系,应该创建第三张表来保存两张表的映射关系
[sql] create table student_teacher( student_id int, teacher_id int, constraint student_teacher_PK primary key(student_id,teacher_id), constraint student_id_FK foreign key(student_id) references student(id), constraint teacher_id_FK foreign key(teacher_id) references teacher(id) );
第三张中的主键是以前两张表的主键作为复合主键,并分别以两张表的主键作为外键。
c.一对一的关系 人与身份证之间的关系
java类对象:
[java] Person int id; String name; IdCard ic; IdCard int id; String address;
对应的数据库表为:
[sql] create table person( id int primary key, name varchar(20) ); create table idcard( id int primary key, address varchar(40), constraint id_FK foreign key(id) references person(id) );
注:对于一对一关系的两张表,分主表与从表,从表的存在必须依赖于主
表,主表可以不依赖于从表。从表的设计上其主键字段同时也是外键字段。
备注:有时在设计表时,会特意把两张表合在一张表中,虽然会造成
数据冗余,但是却可以不因为联表查询而造成查询性能有所降低。这是用
空间来换时间的做法。
bitsCN.com
内容总结
以上是互联网集市为您收集整理的mysql数据库对象关系映射_MySQL全部内容,希望文章能够帮你解决mysql数据库对象关系映射_MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。