多对多关系,应该怎么设计数据库中的表和字段

2021-01-17 20:50:27 字数 2912 阅读 3286

1楼:匿名用户

select a.顾客 from a,b where a.id=b.顾客id and (d.商品='商品1' and d.商品='商品3')

2楼:匿名用户

多对多,两个实体各建一张表,然后再建一张关系表。以你的这个为例,顾客一张表,商品一张表,顾客购买了什么商品建立一张购物表。

如何在数据库中表示多对多的关系

3楼:匿名用户

首先你的两张主表字段就是各自的字段,对于中间表就是把那两张主表的主键加上两张主表联系的属性加上即可。

4楼:匿名用户

多对多要用两个一对多来表示;

5楼:匿名用户

良好的数据库设计都是要符合第三范式或者更加严格一些,所以多对多是一种比较不好的设计方案,会对系统的开发和维护造成很大困难,特别是**上,要重复的比较各个键值,因此都是采用引入关系表的方法,将两个表的主键提取作为关系表的字段,然后关系表中设置游动主键,这样就将多对多的关系解耦成1对多的关系

请问数据库在创建表的时候如何设计表关系,一对一,一对多,多对多 请高手举例说明。谢谢!!!

6楼:匿名用户

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

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

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

希望这样讲对你有点帮助!

7楼:匿名用户

例1:学生选修课程

学生表 (主键 学生id)

课程表 (主键 课程id)

学生选课表 (联合主键 学生id 课程id)学生表与课程表是实体数据表,学生选课表就是这两个实体对象间的对应关系,能过这个关系表可以建立起一个学生选修多门课程的关系。。。

例2:用户帐户权限分配

帐户信息表 (主键 帐户id)

角色信息表 (主键 角色id)

为了使一个帐户可被指定多重角色,还需要一个能将“帐户信息表”和“角色信息表”关联起来的“帐户角色表(联合主键 帐户信息id 角色信息id)”

8楼:匿名用户

一对一:我有一个身份证号 ;

一对多:我有多张银行卡;

多对多:我是招行、交行、建行的客户,但是这些银行用户均过亿。

9楼:匿名用户

你把因果关系弄倒了,不是创建表的时间选用这样的关系,而是我们根据现实世界中设计出这样的关系而创建的表,也就是说我们设计数据库的目的是解决现实中的问题的,而不是你说的为了设计让现实去适应系统,而是系统必须适合现实.

关于数据库设计,先从现实分析e-r(实体-联系)模型,数据库建立的标准就是这个e-r图的.是现实决定了我们使用的表关系.然后从这个e-r进行数据库的创建.

所以这些关系都**于现实.

所以这个问题,可以查看一下数据库设计,e-r分析等内容.不是一两个例子能给你说清楚的!

一对一、一对多、多对多,如何设计数据表?

10楼:匿名用户

一对一正确。

一对多和多对一是多个表 ,至少两个表,一对多和多对一是相互的:

主键是自己定义的,一般外键表引用的对应的表的键是主键;

多对多三个表,有一个是关系表(中间表);

中间表没有普通字段,一般只有有两个外键,同时引用两个表,多对多就出来了

数据库设计怎么将 多对多关系 转换成 一对多关系

11楼:匿名用户

一个 多对多关系 可以转换成两个 一对多关系下面举例说明:

有 学生表 与 选修课程表 多对多关系

一个学生可以选择多门课程, 一门课程可以被多个学生选修.

需要新增加一个 学生选修课程情况表,2个字段(学生编号, 课程编号)然后 学生表 与 学生选修课程情况表 为 一对多关系.

选修课程表 与 学生选修课程情况表 为 一对多关系.

12楼:匿名用户

增加中间表进行映射,具体看实际业务了

数据库表 多对多的关系怎么建啊?

13楼:匿名用户

a表,a_id,a_name,a_tel三个字段。

b表,b_id,b_address,b_sol三个字段。

关联表,ref_id,a_id,b_id,存储着ab两表的id,比如:a有

a0001,zhang3,139555533a0002,li4,1397788888

a0003,wang5,13655566

b有 b0001,shanghai,234b0002,shenyang,332

b0003,chongqing,123

如果想要ab表多对多的话,只需要将关联表进行增加即可,而ab两表基本数据不变,

比如:关联表ref_table:

r0001,a0001,b0002

r0002,a0001,b0001

r0003,a0001,b0003

r0004,a0002,b0003

通过联合查询,就可以得到多对多的数据了,而且不破坏基本数据表。

数据库中如何处理多组多对多的关系?

14楼:瓜田

例如:学生的数据库,一个老师教一个班 学生表里面有个教师id字段,这个字段和老师表的教师id字段就是多对一的关系,反过来就是一对多的关系, access:在有这两个表的数据库中,点击工具栏上的关系按钮,把老师表的教师id字段拖拽到学生表的教...

怎样在数据库中实现一对多的关系,数据库设计怎么将 多对多关系 转换成 一对多关系

1楼 匿名用户 良好的数据库设计都是要符合第三范式或者更加严格一些,所以多对多是一种比较不好的设计方案,会对系统的开发和维护造成很大困难,特别是 上,要重复的比较各个键值,因此都是采用引入关系表的方法,将两个表的主键提取作为关系表的字段,然后关系表中设置游动主键,这样就将多对多的关系解耦成1对多的关...

如何在数据库中表示多对多的关系,数据库中如何处理多组多对多的关系?

1楼 匿名用户 首先你的两张主表字段就是各自的字段,对于中间表就是把那两张主表的主键加上两张主表联系的属性加上即可。 2楼 匿名用户 多对多要用两个一对多来表示 3楼 匿名用户 良好的数据库设计都是要符合第三范式或者更加严格一些,所以多对多是一种比较不好的设计方案,会对系统的开发和维护造成很大困难,...

在数据库设计中将,在数据库设计中,将E-R图转换成关系数据模型的过程为什么属于逻辑设计阶段 40

1楼 物理公司的 define len sizeof muleqt typedef struct muleqt muleqt a1x n1 a2x n2 muleqt build int n if n 0 scanf d d p1 a p1 n p1 next null return head vo...