2 adreamb adreamb 于 2015.06.09 21:41 提问

mysql 什么是一对多的关系?

mysql 设计的时候 什么是一对多的关系?什么是一对一的关系,什么是多对多的关系?

6个回答

suyongzhi1984
suyongzhi1984   2015.06.09 21:59
已采纳

一般来说,是设置从表的主键参照主表的主键来达到1:1的关系

adreamb
adreamb   2015.06.09 21:42

还有没有其他的关系?

suyongzhi1984
suyongzhi1984   2015.06.09 21:59

一般来说,是设置从表的主键参照主表的主键来达到1:1的关系

lzp_lrp
lzp_lrp   Ds   Rxr 2015.06.10 08:39

一般来说,是设置从表的主键参照主表的主键来达到1:1的关系

楼主问的是一对多,采纳答案为1:1,费解

数据库实体间有三种对应关系:一对一,一对多,多对多。
一对一关系示例:一个学生对应一个学生档案材料,或者每个人都有唯一的身份证编号。
一对多关系示例:一个学生只属于一个班,但是一个学院有多名学生。
多对多关系示例:一个学生可以选择多门课,一门课也有多名学生。

这三种关系在数据库中逻辑结构处理分析:

1.一对多关系处理:
我们以学生和班级之间的关系来说明一对多的关系处理方法。
假设现有基本表学生表(学号,姓名,……),班级表(班级号,备注信息,……)。

beacon_2011
beacon_2011   Rxr 2015.06.10 15:23

一对多 就是 这张表的一条数据对应另一张表的多条数据
一对一 是 这张表的一条数据对应另一张表的1条数据

zongqiangkun
zongqiangkun   2015.06.09 21:44

关系数据库中两个表之间的一种关系,该关系中第一个表中的单个行可以与第二个表中的一个或多个行相关,但第二个表中的一个行只可以与第一个表中的一个行相关。
实例解释:
首先一对多不是一个表中的一个列对应另一个表中的多个列,列是不能够一对多的!这里的一对多是是指行的对应!
例如CLASS表中的班级列CLASSID对应于STUDENT表中的班级列CLASSID,当CLASS表中的2班的CLASSID改成4,STUDENT表中所有原来
CLASSID为2的学生的CLASSID都改成了4。但反过来,想要把STUDENT表中的CLASSID为2的其中一个学生CLASSID改为4,在不改动主键
表的情况下是不行的,说明外键是受主键约束的。
命名探究:
一对多关系,一般是一个表的主键对应另一个表的非主键,主键的值是不能重复的,而非主键值是可以重复的,
一个主键值对应另一个表的非主键的值,那么就只有一个值对一个值或一个值对多个值两种可能,故称一对多。
而在一对一关系中,一般是主键对应主键,那么显然就只有一个值对一个值的可能,故称一对一。

Csdn user default icon
上传中...
上传图片
插入图片