1、概述模型
对象模型:在java中是domain,例如:User、Student
is a :继承关系
has a :关系关系
(1)1对1
(2)1对多
(3)多对多
public class Person {
private Hand[] hands;
}
use a :
class 人 {
public void 吃 (筷子) {
人与筷子是用一个的关系
}
}
关系模型:在数据库中表
当我们要完成一个软件系统时,需要把系统中的实体抽取出来,形成概念模型。
例如部门、员工都是系统中的实体。概念模型中的实体最终会成为Java中的类(对象模型),数据库中的表(关系模型)。
实体之间还存在着关系,关系有三种:
(1)一对一:例如丈夫和妻子就是一对一的关系,一个男人只能有一个妻子,而一个女人只能有一个老公。
(2)一对多:例如每个员工都从属一个部门,而一个部门可以有多个员工,其中员工是多方,而部门是一方。
(3)多对多:老师和学生的关系就是多对多,一个老师可以有多个学生,一个学生可以有多个老师。
概念模型在Java中成为实体类(JavaBean)
类就使用成员变量来完成关系,一般都是双向关联。
多对一双向关联中,即员工关联部门,部门也关联员工。
class Empoyee { // 多方关联一方
...
private Department department;
}
class Department { // 一方关联多方
...
private List<Employee> employees;
}
class Husband {
...
private Wife wife;
}
class Wife {
...
private Husband husband;
}
class Student {
...
private List<Teacher> teachers;
}
class Teacher {
...
private List<Student> students;
}
2、外键约束
(1)外键必须是另一个表的主键的值(外键要引用另一个表的主键)
(2)外键可以重复
(3)外键可以为NULL。
(4)一张表中可以有多个外键。
BBS论坛:(用来理解引用关系)
用户
主题贴:
回复帖:
1、作者:用户
2、主贴:主题
对象模型:可以双向关联,而且引用的是对象,而不是一个主键。
关系模型:只能多方引用一方,而且引用的只是主键,而不是一整行记录。