精华内容
下载资源
问答
  • 在表关系里,多对多用得比较多,一对多,然后才一对一  数据库中“一对一”、“一对多”、“多对多”的判断方法 多对多:一个老师可以教多个学生,一个学生可以有多个老师教。 一对多:一个父亲可以有多个亲生孩子,一...
  • 对多关系, 通常我们建立个中间表,关联另外两个表的主键; 中间表不要多余信息,且另外两张表信息不重复。 表1:学生 表3:爱好 中间表2:学生id;爱好id; Oracle 建表:打开SQLWindows—输入建表语句,执行...
    1. 多对多关系

    通常我们建立一个中间表,关联另外两个表的主键;
    中间表不要多余信息,且另外两张表信息不重复。

    表1:学生
    表3:爱好
    中间表2:学生id;爱好id;

    1. Oracle

    建表:打开SQLWindows—输入建表语句,执行运行-----插入具体数据,复制insert语句,同样运行,再submit!!!
    在这里插入图片描述

    展开全文
  • 数据库对多关系建表

    千次阅读 2019-08-26 00:45:59
    对于多对多关系建表的方式是有两种的,最常见的做法就是建立一张中间关系表b,关联另外两张表a和c的主键,不要其他多余信息,这种做法通常的情况就是a表和c表中的数据不能有重复的,所以我们只能建立单独的关联...

    对于多对多的关系,建表的方式是有两种的,最常见的做法就是建立一张中间关系表b,关联另外两张表a和c的主键,不要其他多余信息,这种做法通常的情况就是a表和c表中的数据不能有重复的,所以我们只能建立单独的关联关系来关联两张表中的记录。而且建立这种关联关系时不会产生其他很多附属关联信息,或者说是a表和c表都需要独立的维护,不能受对应关系的影响。比如有一张用户表,和兴趣表,用户和兴趣之间属于多对多的关系,且用户表和兴趣表都是独立维护的,不能受关系变化而影响,所以只能建立关联关系表,这和业务有很大的关系。另外还有一种业务场景,比如团队和队员这种关系,业务场景是队员在不同团队中时,会有不同的其他属性,比如在a团队中是管理者,在b团队中是普通队员,这个时候,你会发现对应关系对应着很多属性,或者说团队表和队员表,其中队员表中的队员无法复用,同一个人必须重复出现,因为当队员处于不同团队时,他会有不同的属性,这个时候,关联关系表就没有必要存在了,因为队员表中一条队员记录只能对应一个团队,要对应其他团队,只能新增队员记录,其实这时队员表就已经是队员表和关系表的合体了,所以就不需要关联表了。这个时候多对多的关系就只涉及了两张表了,和前一个例子是完全不同的。所以建表时千万要分析清楚业务场景,因为我是见过有人在第二种业务场景下还建立了关联关系表,并且还把附属字段添加到关系表中,并把团队id关联到队员表中,不仅违反了正常人的逻辑,还没有简化成2张表,成功的将简单问题复杂了很多。

    展开全文
  • 转自:https://blog.csdn.net/zhongshan_c/article/details/8210196数据库建表-- 一对多/多对一/一对一/多对多 关系 关联映射:一对多/多对一存在最普遍的映射关系,简单来讲就如球员与球队的关系一对多:从...
    

    转自:

    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来存储,因为这类型的值一般不会用来计算)。

    比如:

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

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

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

    这样存储。

    再比如:

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

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

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

    展开全文
  • 一对多/多对一关系简记:“多”的要记住“一”的主键,即每个球员表都要通过外键来记住球队表。 一对多、多对一 最普遍的情况。多的一方要保存一的一方的主键pk作为外键fk。 一对一: 随便一方记住另外一方...

    技巧:

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

     

    一对多、多对一

    最普遍的情况。多的一方要保存一的一方的主键pk作为外键fk。

    一对一:

    随便一方记住另外一方的主键作为外键。

    多对多:

    一般采取中间表,转化为一对多的关系

     

     

    参考资料

    https://blog.csdn.net/weixin_41547486/article/details/80683496

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

     

     

     

     

    展开全文
  • 对多关系建表对多关系对多关系建表原则domain 多对多关系 个老师可以教多个学生,个学生可以被多个老师教。 个学生可以选择多门课程,一门课程可以被多个学生选择。 个用户可以选择多个角色,个...
  • 14-多对多关系建表

    2021-01-30 23:26:43
    对多关系建表对多关系对多关系建表原则 domain 多对多关系 个老师可以教多个学生,个学生可以被多个老师教。 个学生可以选择多门课程,一门课程可以被多个学生选择。 个用户可以选择多个...
  • 数据库一对一、一对多、多对多关系

    万次阅读 多人点赞 2018-01-10 15:54:10
    数据库一对一、一对多、多对多关系  本来数据库一对一、一对多、多对多关系并不复杂,但是最近在理解的时候感觉又感觉多了写新意,所以现在在来总结一下吧 一、首先给出三种关系的实例 1、一对一关系实例 ...
  • 一、一对多关系 例:公司与员工的关系,公司为一,公司员工为多,需要在多方建立外键指向一方的主键。 二、多对多的关系 例:商品与订单的关系,一个商品可以属于多个订单,一个订单可以有多种商品。  用户和...
  • SQL实现一对多、多对多建表与查询

    千次阅读 2021-03-01 17:11:40
    之前在做网页开发的时候一直用Sqlalchemy来操作数据库,当我用到自关联多对多和自关联一对多的时候,sqlalchemy的配置会有一些辅助的参数,配置起来很麻烦,灵机一动我就想了一下,为什么不能直接写sql呢!...
  • 数据库建表

    2019-10-29 17:15:58
    ①一个用户有多个订单(用户与订单之间是 一对关系) ②一个订单可包含多个商品,一个商品可以被多个订单下单 (商品与订单之间是 多对多关系) (三)建库、建表 create databases shopingmall; use ...
  • 2、一对多可以建两张表,将一这一方的主键作为多那一方的外键,例如一个学生表可以加一个字段指向班级(班级与学生一对多关系) 3、多对多可以多加一张中间表,将另外两个表的主键放到这个表中(如教师和学生就是多...
  • Flask 数据库对多关系

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

    2018-01-05 15:52:40
    国产数据库达梦数据库,利用存储函数可以方便快捷建立大量测试用表
  • mysql 笔记 ...请问数据库在创建表的时候如何设计表关系,一对一,一对多,多对多 请高手举例说明。谢谢!!! https://zhidao.baidu.com/question/251111120.html 效果图 DDL CREATE TABL...
  • 数据库表设计之网站建表优化

    千次阅读 2018-09-13 00:18:27
    在之前遇到过的项目中,常常发现有的人对数据库中的表建的特别的随意,丝毫不考虑使用场景与网站在实际操作中的各种情况 比方说我们现在有个社交网站要建立个用户表 叫做db_user 现在这个表里边我们要存放 ...
  • Spring data 数据库建表(一对一,一对多,多对多) 摘要: DBA 如果你在不学习编程,你将失业。如今我们对DBA的依赖越来越少,多数框架都支持实体关系映射,通过面向对象编程即可定义数据库结构。数据库设计也...
  • 2、一对多关系实例 * 一个班级拥有多个学生,一个学生只能够属于某个班级 3、多对多实例 * 一个学生可以选修多门课程,一个课程可以被多个学生选修 二、一对一关系 一对一关系是最好理解的一种关系,在数据库建表...
  •  本来数据库一对一、一对多、多对多关系并不复杂,但是最近在理解的时候感觉又感觉多了写新意,所以现在在来总结一下吧 一、首先给出三种关系的实例 1、一对一关系实例  * 一个人对应一张身份证,一张身份证对应一...
  • 表与表的关系 一对一 一对多 多对多 建表原则 ...一对多关系:在多的一方建立外键指向一的一方的主键 多对多关系:创建一个中间表,中间表至少有两个字段,分别作为外键指向多对多双方的主键 ...
  • 一对多关系实例 一个班级拥有多个学生,一个学生只能够属于某个班级 多对多实例 一个学生可以选修多门课程,一个课程可以被多个学生选修 一对一关系 主键的设计方式 一对一关系是最好理解的一种关系,在数据库...
  • 个群组内有个联系人 个联系人可以加入个群组 个联系人或群组被删除后与之对应关系也被删除 我知道应该三张表: 联系人表(id,name) 群组表(id,name) 关系表 我是用sqlite,想实现以上需求,...
  • 总结一下数据库一对多、多对一、一对一、多对多 关系 以及对应的建表方式 一对一 球队和球队所在的地址之间的关系--一个球队只有一个地址,一个球队地址对应一个球队. ①一对一外键关联 (fk->Foreign...
  • 在写了部分接口后,发现数据库建立的很不合理,给开发增加了难度。 是业务层面没有理清楚,二是一些数据库的规范不清楚。 结果导致今天进度回滚了,把之前建立的数据库表全部删除了,重新梳理业务理解,重新...
  • 、问题: 在业务中遇到这样的情况 :...这是数据库中典型的多对多的问题, 二、解决: 此时应当形成第三张关联表。这里三张表的字符编码应该相同。 create table stu_cour( sc_id int primary key auto_incre
  • 数据库一对一、一对多、多对多关系 一、首先给出三种关系的实例 1、一对一关系实例 一个人对应一张身份证,一张身份证对应一个人 2、一对多关系实例 一个班级拥有多个学生,一个学生只能够属于某个班级 3、多对...
  • mysql数据库建表规范以及注意事项

    千次阅读 2020-08-26 17:41:42
    mysql数据库建表规范以及注意事项 、 表设计规范 库名、表名、字段名必须使用小写字母,“_”分割。 库名、表名、字段名必须不超过12个字符。 库名、表名、字段名见名知意,建议使用名词而不是动词。 建议...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,755
精华内容 29,902
关键字:

数据库一对多关系建表