mysql一对多如何设计_数据库在一对一、一对多、多对多怎么设计表关系

1、一对一可以两个实体设计在一个数据库中l例如设计一个夫妻表,里面放丈夫和妻子

2、一对多可以建两张表,将一这一方的主键作为多那一方的外键,例如一个学生表可以加一个字段指向班级(班级与学生一对多的关系)

3、多对多可以多加一张中间表,将另外两个表的主键放到这个表中(如教师和学生就是多对多的关系)

关于外键的设置:

首先,外键引用的那个列在主表中必须是主键列或者唯一列。

所以1:n的肯定把外键建立在n的那张表上。

1:1,一般要看谁是主表,谁是附属表,外键当然建立在附属表中。

n:m的情况,需要建立一个关系表,两个原表和其关系分别是1:n,1:m

关于主外键及多表联系的进一步理解:

主外键的存在是依托两个实体之间的关系而存在的;

比如班级与学生的关系:

一个班级可以有多个学生,并且一个学生只能属于一个班级,这就是一对多的关系;

那么设计数据库的时候就应该在学生表内存放班级的ID作为外键,为什么不在班级表内放学生呢?

因为,你想一想班级表内如果放学生那么记录可能就是这样:

1班ID 1班 xx同学id

1班ID  1班 xx同学id

..

这是不允许的,班级表内班级为主键,是唯一的不允许相同记录的;

下面简单讲下大概建成的表结构

--建班级表

create table class(

classid int primary key,--定义班级ID为主键

cla


版权声明:本文为weixin_42144554原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。