精华内容
下载资源
问答
  • 数据库一对一、一对多、多对多关系

    万次阅读 多人点赞 2018-01-10 15:54:10
    数据库一对一、一对多、多对多关系  本来数据库一对一、一对多、多对多关系并不复杂,但是最近在理解的时候感觉又感觉多了写新意,所以现在在来总结一下吧 一、首先给出三种关系的实例 1、一对一关系实例 ...
    数据库一对一、一对多、多对多关系

         本来数据库一对一、一对多、多对多关系并不复杂,但是最近在理解的时候感觉又感觉多了写新意,所以现在在来总结一下吧
    一、首先给出三种关系的实例
    1、一对一关系实例
       * 一个人对应一张身份证,一张身份证对应一个人
    2、一对多关系实例
       * 一个班级拥有多个学生,一个学生只能够属于某个班级
    3、多对多实例
       * 一个学生可以选修多门课程,一个课程可以被多个学生选修

    二、一对一关系

    一对一关系是最好理解的一种关系,在数据库建表的时候可以将人表的主键放置与身份证表里面,也可以将身份证表的主键放置于人表里面

    三、一对多关系


    • 班级是1端,学生是多端,结合面向对象的思想,1端是父亲,多端是儿子,所以多端具有1端的属性,也就是说多端里面应该放置1端的主键,那么学生表里面应该放置班级表里面的主键

    四、多对多关系

    对于多对多关系,需要转换成1对多关系,那么就需要一张中间表来转换,这张中间表里面需要存放学生表里面的主键和课程表里面的主键,此时学生与中间表示1对多关系,课程与中间表是1对多关系,学生与课程是多对多关系

    四、总结

    总而言之,最重要的关系就是1对多关系,根据面向对象思想在建表的时候将1端主键置于多端即可。


    展开全文
  • 原文:http://blog.csdn.net/lm709409753/article/details/48440401数据库实体间有三种对应关系:一对一,一对多,...多对多关系示例:一个学生可以选择多门课,一门课也有多名学生。这三种关系在数据库中逻辑结构处...

    原文:http://blog.csdn.net/lm709409753/article/details/48440401

    数据库实体间有三种对应关系:一对一,一对多,多对多。

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

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

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

                           
    方法一:
    新增一个关系表,用来表示学生与班级的属于关系,该关系表包含字段(学生号,班级号)。通过学生号与班级号的对应关系表示学生属于的班级。
    方法二:
    在学生表中新增字段(班级号),该字段作为学生表的外键与班级表中的班级号关联。每一个学生实体在班级号字段的值,表示该学生属于的班级。
    小结:一般情况下,一对多关系采用方法二来处理。一对多的两个实体间,在“多”的实体表中新增一个字段,该字段是“一”实体表的主键。

    2.多对多关系处理:

     

    在多对多关系中,我们要新增加一个关系表。如在上面示例中,在学生表和课程表的基础上增加选课表来表示学生与课程之间的多对多关系。在选课表中,必须含有的属性有学生号和课程号。(学生号,课程号)这个属性集刚好也就是选课表的关键字。

    展开全文
  • Mysql多对多关系利用中间表查询

    万次阅读 2019-05-25 17:24:17
    1、多对多关系,我们举个简单的例子,一个顾客可以买多件商品,同时一类商品(指多件相同的商品)也可以也可以让多个用户购买 下面是对应的表,用户表,商品表以及关系表,其中关系表中userId、metId的外键分别是...

    1、多对多关系,我们举个简单的例子,一个顾客可以买多件商品,同时一类商品(指多件相同的商品)也可以也可以让多个用户购买

    下面是对应的表,用户表,商品表以及关系表,其中关系表中userId、metId的外键分别是userTable 的userId 、materialTable 的matId

            userTable                                                      materialTable                                       

     

                                   

       materil_user 

     

    如果我们要查询用户a1买了哪些商品我们可以这样

    SELECT user.userName,user.userId,mat.matName,mat.matId FROM materil_user mu LEFT JOIN userTable user on 
    user.userId=mu.userId LEFT JOIN materialTable mat on mat.matId=mu.matId WHERE mu.userId=1

     查询结果:

    展开全文
  • 转自:...一对多:从球队角度来说一个球队拥有多个球员 即为一对多多对一:从球员角度来说多个球员属于一个球队 即为多对一数据表间一对多关系如下图:注:一对多...
    

    转自:

    https://blog.csdn.net/zhongshan_c/article/details/8210196

    数据库建表-- 一对多/多对一/一对一/多对多 关系

    关联映射:一对多/多对一存在最普遍的映射关系,简单来讲就如球员与球队的关系;一对多:从球队角度来说一个球队拥有多个球员 即为一对多多对一:从球员角度来说多个球员属于一个球队 即为多对一数据表间一对多关系如下图:

    注:一对多/多对一关系简记:“多”的要记住“一”的主键,即每个球员表都要通过外键来记住球队表。

    关联映射:一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。数据表间一对一关系的表现有两种,一种是外键关联,一种是主键关联。图示如下:
    一对一外键关联:

    一对一主键关联:要求两个表的主键必须完全一致,通过两个表的主键建立关联关系

     

    关联映射:多对多

    多对多关系也很常见,例如学生与选修课之间的关系,一个学生可以选择多门选修课,而每个选修课又可以被多名学生选择。 数据库中的多对多关联关系一般需采用中间表的方式处理,将多对多转化为两个一对多。

    数据表间多对多关系如下图:

    ----------------------------------------------------------------------------------------------------------

    前言:多对多关系至少需要3个表,我们把一个表叫做主表,一个叫做关系表,另外一个叫做字典表或者副表(字典表是纪录比较少,而且基本稳定的,例如:版块名称;副表是内容比较多,内容变化的,例如)。 
    按照数据库的增删查改操作,多对多关系的查找都可以用inner join或者

    select * from 主表 where id in (select 主表id from 关系表)

    1,角色任命型

    特点:关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键,有一个表是字典类型的表。 
    界面特点:显示主表,用checkbox或多选select设置多选关系。 
    例如:任命版主(用户表-关系表-版块名称表),角色权限控制等,用户是5个版块版主,只要关系表5行纪录就可以确立,关系表的两个外键具有联合主键性质。 
    增加关系:如果没有组合纪录,insert之。 
    删除关系:如果有组合纪录,删除之。

    2,集合分组型

    特点:同角色任命型类似,关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键。区别是主副表都不是字典表,可能都很大不固定。 
    界面特点:显示主表,用搜索代替简单的checkbox或多选select,或者一条一条的添加。 
    例如:歌曲专集(专集表-关系表-歌曲表)。手机分组(分组表-关系表-手机表)。用户圈子(圈子表-关系表-用户表)。文章标签(文章表-关系表-标签表) 
    增加关系:同版主任命型。 
    删除关系:同版主任命型。


    3,明细帐型

    特点:关系表可以有重复纪录,关系表一般有时间字段,有主键,可能还有文字型的字段用来说明每次发生关系的原因(消费)。 
    界面特点:显示关系表,用radio或下拉设置单选关系。 
    例如:现金消费明细帐或订单(用户表-订单表-消费原因表),用户可能多次在同一事情上重复消费。积分变化纪录也属于这类。 
    增加关系:不管有没有组合纪录,insert之,纪录时间。 
    删除关系:根据关系表PK删除。


    4,评论回复型

    特点:同明细帐型关系表一般有时间字段,有主键,区别是重点在文字型的字段用来说明每次发生关系的内容(评论回复)。 
    界面特点:回复文本框。 
    例如:论坛回复(用户表-回复表-帖子表),用户可能多次在不同帖子上评论回复费。 
    增加关系:不管有没有组合纪录,insert之,纪录时间和文字。 
    删除关系:根据关系表(回复表)PK删除。

    5,站内短信型

    特点:主副表是同一个,关系表一般有时间字段,有主键,重点在关系表文字型的字段用来说明每次发生关系的内容(消息)或者其他标记位来表示文字已读状态时间等。 
    界面特点:回复文本框。 
    例如:站内短信(用户表-短信表-用户表),用户可能给用户群发或者单发,有标记位来表示文字已读状态时间等。 
    增加关系:不管有没有组合纪录,insert之,纪录时间和文字。 
    删除关系:根据关系表(回复表)PK删除。

    6,用户好友型

    特点:主副表是同一个,同集合分组型,关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键。 
    界面特点:同集合分组型,显示主表,用搜索代替简单的checkbox或多选select,或者一条一条的添加。 
    例如:下载站点的文件,(文件表-关系表-文件表)可以被软件工具打开,软件工具本身也是一种文件,可以被下载。用户的好友,也是用户(用户表-好友关系表-用户表) 
    增加关系:同版主任命型。 
    删除关系:同版主任命型。


    7,未知属性型

    特点:在设计初期,主表的某些字段类型和名称是不确定的时候,关系表实际上是主表的可扩展字段, 
    一个[主表](ID), 
    一个[属性名称表](属性ID.属性名称), 
    一个[属性值表],包括3个字段: 
          属性值(属性Value varchar(500)) 
          主表ID 
          属性ID

    这样可以作到最小冗余度。 
    (和常见的多对多关系不同的是:值统一用varchar来存储,因为这类型的值一般不会用来计算)。

    比如:

    军队的数据库设计中有种物资叫做“战缴物资”,就是打仗的时候缴获的,军队自己都不知道这些物资有什么属性。

    比如缴获的化学品有化学名,通用名,是否有辐射,计量单位,包装规格,数量等等,或者不是化学品是其他任何未知的东西。 
    这样东西就可以

    某奇怪东西.属性集合["某某奇怪属性名"]="某某奇怪值";    
    某变态东西.属性集合["某某变态属性名"]="某某变态值";   

    这样存储。

    再比如:

    手机型号有几千种,除了共同属性外还有不同属性有几百个,属性名和值类型都不一样,有的手机有这属性,有的没有。 
    对于这样的“多态”,我们就采用上面的设计结构。 
    其效果相当于:

    某奇怪手机.属性集合["某某奇怪属性名"]="某某奇怪值"; 
    某变态手机.属性集合["某某变态属性名"]="某某变态值";

    界面特点:设置主表一行纪录的属性时候,要列出所有可能的属性名称,每个对应一个文本框。

    展开全文
  • 在关系型数据库中,通过...一对多关系一个班级有很多学生,外键维护在学生的一方,也就是多的一方。(在做页面设计的时候,需要把两个表连接到一块查询信息)建立一个student和clazz表clazz id name1 一班2 二班3 ...
  •  本来数据库一对一、一对多、多对多关系并不复杂,但是最近在理解的时候感觉又感觉多了写新意,所以现在在来总结一下吧 一、首先给出三种关系的实例 1、一对一关系实例  * 一个人对应一张身份证,一张身份证对应一...
  • Flask 数据库多对多关系

    万次阅读 2016-05-06 17:05:58
    其中,一对多关系是最常用的关系类型,它把一个记录和一组相关的记录联系在一起。实现这种关系时,要在“多”这一侧加入一个外键,指向“一”这一侧联接的记录。大部分的其他关系类型都可以从一对多类型中衍生。 多...
  • 多对多关系的多表关联查询

    万次阅读 多人点赞 2017-11-23 19:14:20
    笔者根据实际的业务和参考网上多对多的处理方法,现在做如下处理,由于笔者技术水平有限,错误之所,在所难免,敬请各位技术大佬批评和指正
  • 多对多关系示例:一个学生可以选择多门课,一门课也有多名学生。 这三种关系在数据库中逻辑结构处理分析: 1.一对多关系处理: 我们以学生和班级之间的关系来说明一对多的关系处理方法。 假设现有基本表学生...
  • MySQL数据库通过navicat建立多对多关系

    万次阅读 多人点赞 2017-05-12 01:35:32
    构建两张表的多对多关系:清洗数据表(clean_data表)与用户表(user表)建立多对多的关系。如下图图0所示 图0 多对多之间关系1 创建表.打开navicat,创建三张表,clean_data表与user表,以及两个表之间的关系表...
  • 一、中间表-多对多关系的转化实际中,经常存在多对多关系。以订单和商品为例,一个订单对应多个商品,一个商品也对应多个订单。此时在将E-R图转化为关系模型时,需要引入中间表(也叫做连接表)。中间表包含两个实体...
  • 关联映射:一对多/多对一 ...数据表间一对多关系如下图: 关联映射:一对一 一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。 数据表间一对一关系的表现
  • 在关系数据库中,除了一对一,一对多外,还有一个多对多关系.前两个关系都只需要两个表本身就能表达清楚他们之间的关系,而多对多关系则需要第三张中间表来表达清楚两张表之间的关系. 在一般情况下是由三个字段组成:1、...
  • 查了好多资料old:@ManyToMany 注释:表示此类是多对多关系的一边,mappedBy 属性定义了此类为双向关系的维护端,注意:mappedBy 属性的值为此关系的另一端的属性名。例如,在Student类中有如下方法:被控方: @...
  • MySQL关系&一对多&一对一&多对多

    千次阅读 2018-09-04 09:34:36
    将实体与实体的关系,反应到最终数据库表的设计上,将关系分为三种:一对一,一对多(多对一)和多对多,所有的关系都是表与表之间的关系 一对一 一对一:一张表的一条记录只能与另外一条记录进行对应,反之亦然 ...
  • 5 多表设计之间的关系 一对多的关系:例如 一个部门对多个员工,一个员工只能属于一个部门 多对多的关系:例如 学生选课,一个学生可以选多门课程,一门可能可以被...7 多对多关系介绍: 多对对建表原则:创建第三张表
  • 多对多关系示例:一个学生可以选择多门课,一门课也有多名学生。这三种关系在数据库中逻辑结构处理分析:1.一对多关系处理: 我们以学生和班级之间的关系来说明一对多的关系处理方法。 假设现有基本表学生表
  • 一对多关系 一对多关系是最普通的一种关系。在这种关系中,A 表中的一行可以匹配 B 表中的多行,但是 B 表中的一行只能匹配 A 表中的一行。例如,publishers 和 titles 表之间具有一对多关系...在多对多关系中,A
  • 关系型数据库 多对多关系 三表还是两表 ?多对多一般都是三张表,两张各自的单个信息表,一张表明关系的连接表。student//学生基本信息表 id name ... course//课程基本信息表 id name teacher... sc//选课表,每一...
  • 一对一的关系最简单,一个实体创建一张表就行了; 一对多和多对一的关系建表原则是一样的,在多的一方用外键列引用‘一’的一方的主键,来保证两者之间...多对多关系,就是新创建一张中间表,以保证二者之间的联系。
  • 我的电脑系统:Windows 10 64位 ...关系的分类(假设是A表和B表)第一种分类: 一一 (详述一关系及其实现)(一一,几乎不使用。所以,我们就一句话带过。) 一一的实现:既可以把表A的主键充当表B的外键
  • 关联映射:一对多/多对一 存在最普遍的映射关系,简单来讲就如球员与...数据表间一对多关系如下图: 关联映射:一对一 一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地
  • 1.一对多关系处理:我们以学生和班级之间的关系来说明一对多的关系处理方法。 假设现有基本表学生表(学号,姓名,……),班级表(班级号,备注信息,……)。 方法一:新增一个关系表,用来表示学生与班级
  • 对于多对多关系表,要通过创建中间表来实现外键关联 1.例如一个用户可以拥有多个游戏角色,这是一对多的关系 2.例如一个角色可以拥有多个商品,且一个商品可以对应多个角色,这是多对多关系 ...
  • 什么是实体表,什么是关系表,一对多和多对多应该怎么设计表? 1 背景介绍 在任务三设计数据库的时候,需要理清表与表数据之间的关系,这时候就需要知道什么是实体表和关系表。然后根据他们之间的关系设计表 2.知识...
  • 二、多对多关系 例:商品与订单的关系,一个商品可以属于多个订单,一个订单可以有多种商品。  用户和角色的关系,一个角色可以包括多个用户,一个用户可以是多个角色。 创建一张用户表和一张角色表,还需创建...
  • 关系(一对一,一对多,多对多)

    千次阅读 2018-03-03 21:04:31
    可以在数据库图表中的表之间创建关系,以显示一个表中的列与另一个表中的列是如何相链接的。在一个关系型数据库中,利用关系可以避免多余的数据。例如,如果设计一个可以跟踪图书信息的数据库,您需要创建一个名为 ...
  • 创建一个一对多关系图 如图: 自此已经完成,有些人感觉这里有虚线看着很难受,我们可以这样:进入【视图】,取消勾选“分页符”就OK了,如图: 取消勾选后,如图: 是不是感觉整洁多了,有关于在Visio一....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,957,566
精华内容 1,183,026
关键字:

多对多关系