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

2020-11-30 06:49:07 字数 3769 阅读 1822

1楼:匿名用户

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

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

2楼:匿名用户

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

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

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

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

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

3楼:匿名用户

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

sql数据库一对多关系如何取出多条数据? 10

4楼:匿名用户

直接在sql中是没法这么个结构出来的,需要配合编程语言实现

1、先查询出用户列表,然后循环用户列表,再根据用户跟作品表的关联查询到每个用户的作品信息

2、分别查询出用户表和作品表中的所有数据,再根据用户和作品的关联字段进行数据的组合

5楼:匿名用户

select*from

(select

--t.id,

t.bigclass,

t.num,

t.**allclass,

t.[content],

t.isquantization,

--t.deptid,

--t.targetvalue,

--t.minvalue,

--t.strivevalue,

--t.score,

--t.belongtoperiod,

--t.quantizationtype,--t.indicatorsepdept,--t.f_createdate,

--t.[status]

dzir.*

,row=row_number()over(partitionbyt.idorderbydzir.createtimedesc)

from

dk_zb_deptindicatorastrightjoin

dk_zb_indicatorreportasdzirondzir.indicatorsid=t.id)astwheret.row=1

dk_zb_deptindicator 对应你的 user 表

dk_zb_indicatorreport 对应你的 作品表

6楼:节子不哭

不是很明白你具体需要做什么,**有一对多的关系,取出什么样的数据?

7楼:匿名用户

select * from user left join works on users.id = works.userid group by users.姓名

数据库如何建立表间一对多关系

8楼:匿名用户

mysql里面有如下的表

user:id username

photo:id name

photo_favour(**收藏关系表):photo_id user_id

假设这几个表都相当大,需要进行分表。我的分表规则是:

数据库表与表之间多对多关系怎么处理?

9楼:匿名用户

拆分关系。增加一个表。使之符合范式。

比如做学

生选课系统。多个学生选多门课。这是多对多关系。

这样可以写成三个表。

分别为。学生表(学号,姓名)

课程表(课程号,课程名)

选课表(学号,课程号)

通过选课表,将学生和课程联系起来了。

10楼:匿名用户

把问题具体一些

多对多也可以join 连接

数据库中怎样将多对多的关系转为一对多的关系?麻烦告诉我

11楼:斑竹威武

哦多对多模式也是比较常见的一种数据库设计模式,它所描述的两个对象不分主次、地位对等、互为一对多的关系。对于a表来说,一条记录对应着b表的多条记录,反过来对于b表来说,一条记录也对应着a表的多条记录,这种情况就是“多对多模式”。“多对多模式”需要在a表和b表之间有一个关联表,这个关联表也是“多对多模式”的核心所在。

根据关联表是否有独立的业务处理需求,可将其划分为两种细分情况。

sql数据库怎么创建一对多的关系(具体见补充)

12楼:匿名用户

表2:tagmap(searchtext, tag) -- 1:n关系表

表1:object(tag, ...)

如何在access数据库中实现一对多关系数据的添加

13楼:匿名用户

:先对关系进行梳理,检测是否存在错误的地方,保证一个外键(如子女)只有一个主键(如父母); 如果确认存在多对多的地方

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

14楼:匿名用户

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

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

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

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

15楼:匿名用户

例1:学生选修课程

学生表 (主键 学生id)

课程表 (主键 课程id)

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

例2:用户帐户权限分配

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

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

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

16楼:匿名用户

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

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

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

17楼:匿名用户

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

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

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

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

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

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