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

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

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

    二、一对一关系

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

    三、一对多关系


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

    四、多对多关系

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

    四、总结

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


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

    千次阅读 2017-10-10 19:39:35
    本文主要描述Django数据中一对一的数据关系,创建app等配置不再赘述。 Django操作数据库,使用ORM ORM:关系映射对象,把...多对关系 举例:一个出版社发表多个文章,一篇文章也可以对多个出版社发表 ManyToManyF

    本文主要描述Django数据中一对一的数据关系,创建app等配置不再赘述。

    Django操作数据库,使用ORM

    ORM:关系映射对象,把传统的SQL语句封装成了类和对象的形式,在操作表中的记录时,就像在操作类和对象一样。

    使用默认数据库:sqlite

    操作在models.py文件中完成。

    多对多关系

    举例:一个出版社发表多个文章,一篇文章也可以对多个出版社发表

    ManyToManyFiled():关联两个表的函数,但是函数的设置位置,在模型中任选一个即可,不能在两个模型中都设置此函数。

    class Publication(models.Model):
        id = models.AutoField(primary_key=True)
        title = models.CharField(max_length=30, null=True)  # 出版社名称
    
        class Meta:
            db_table = 'Publication'
    
        def __unicode__(self):
            return 'Publication-Name: %s' % self.title
    
    
    class Article(models.Model):
        id = models.AutoField(primary_key=True)
        headline = models.CharField(max_length=100, null=True)
    
        # 让文章关联出版社
        publication = models.ManyToManyField(Publication)
    
        class Meta:
            db_table = 'Article'
    
        def __unicode__(self):
            return 'Article-Name: %s' % self.headline
    
    
    创建完数据库模型之后,就需要创建数据库变更文件,应用数据库变更文件创建表的操作。
    创建数据库变更文件:python manage.py makemigrations
    应用数据库变更文件:python manage.py migrate
    可以使用SQLite可视化工具查看已经建立成功的数据库表
    
    由于未进行其他配置,所以只能在shell环境下,对数据库进行操作。
    进入shell环境的命令:python manage.py shell

    注意点:

    1)注意ManyToManyField()的设置位置;该实例中设置了Article模型中,在绑定两张表的时候,利用Article的对象a1进行绑定的,a1.publication.add()。但是不能使用Publication的对象p1进行绑定(p1.article.add())。

    两张表之间的相互查询关系

    查询a1这篇文章所属的出版社有哪些

    print a1.publication.all()

    查询某一出版社,所包含的所有文章有哪些

    print p1.article_set.all()


    展开全文
  • 等价关系举例 相容关系举例 偏序关系举例 等价类的定义 等价关系与等价类的例题 商集的定义 集合中的三种关系 等价关系:设R为定义在集合A上的关系,若R是自反的,对称的,传递的,则R称为等价关系 相容关系...

    目录

     

    集合中的三种关系

    等价关系举例

    相容关系举例

    偏序关系举例

    等价类的定义

    等价关系与等价类的例题

    商集的定义


    集合中的三种关系

    等价关系:设R为定义在集合A上的关系,若R是自反的对称的传递的,则R称为等价关系

    相容关系:设R为定义在集合A上的关系,若R是自反的和对称的,则R称为等价关系

    序关系(偏序关系):设A是一个集合,若A上的关系R是自反的反对称的传递的,则R是A上的偏序关系


    等价关系举例

    等价关系可以简单理解成我们实数集上的等于关系,等于关系应该算等价关系的子集。

    当然,离散数学中也对等价关系做了抽象,比如实数集上的同余模k关系。

    再抽象一点,比如通信基站之间的通信关系,通信基站A可以和自己通信(类似于我们在调试的时候在地址栏输入localhost回环地址)【自反性】,基站A可以和相邻的基站B通信,那么基站B也能和基站A通信(正常情况下)【对称性】,基站A可以和基站B通信,基站B可以和基站C通信,那么基站A通过B的中转也能和基站C通信(同样是正常情况下)【传递性】。


    相容关系举例

    集合A={cat, teacher, cold, desk, knife, by}

    定义关系r = {<x, y> | x, y∈A 且 x和y有相同的字母}

    那么r是一个相容关系。

    自己和自己有相同的字母【自反性】,如果A和B有相同的字母,那么B和A也有相同的字母【对称性】


    偏序关系举例

    设A是正整数m=12的因子集合,设≤为整除关系,求COVA

    A = {1, 2, 3, 4, 6, 12}

    “≤” = {<1, 2>, <1,3>, <1,4>, <1,6>, <1,12>, <2,4>, <2, 6>, <2, 12>, <3, 6>, <3, 12>, <4, 12>, <6, 12>, <1, 1>, <2,2>, <3, 3>,     <4, 4>, <6,6>, <12, 12>} 

    在求覆盖集之前我先说一下为什么求覆盖集,可以说求覆盖集是画哈斯图的准备工作。由于偏序关系具有反对称性,所以哈斯图可以用无向图来表示偏序关系,又由于偏序关系的传递性,所以我们在画哈斯图的时候可以不用画多余的传递边,这些传递边的消去就是覆盖集的工作内容

    COVA = {<1,2>, <1,3>, <2,4>, <2,6>, <3,6>, <4,12>, <6,12>}

    哈斯图如下


    等价类的定义

    设R为集合A上的等价关系,对任何a∈A,集合 [a]R={x | x∈A, aRx} 称为元素a形成的R的等价类

    由于等价关系满足对称性,所以也可以将定义写成 [a]R={x | x∈A, xRa}


    等价关系与等价类的例题

    例题一:设I为整数集,R={<x, y> | x mod y=k},证明R是等价关系

    证明: 对于任意 a,b,c∈I,有

    1)因为 a-a = k*0, 所以 <a, a>∈R,R满足自反性

    2)假设 a mod b = k,即有 a-b=kt , 那么 b-a=-kt , 所以<b, a>∈R, R满足对称性

    3)假设a mod b = k 且 b mod c = k,即 a-b=kt, b-c=ks,那么有 a-b+b-c=k(t+s) ,即 <a, c>∈R, R满足传递性

    综上所述,得证R是等价关系


    例题二:设关系R为整数集I上的模3同余关系,求R的等价类

    解:由例题一已经得证R是等价关系,对于模3同余关系,一共有三个等价类

    [0]R = {... , -6, -3, 0, 3, 6, ...}

    [1]R = {..., -5, -2, 1, 4, 7, ...}

    [2]R = {..., -4, -1, 2, 5, 8, ...}


    例题三:求证给定集合A上的等价关系R,对于a,b∈A,有aRb,当且仅当 [a]R=[b]R

    证明:假设 [a]R=[b]R,因为 a∈[a]R, 所以a∈[b]R, 即有aRb

    反之,若 aRb,则有 c∈[a]R => aRc => cRa => cRb => c∈[b]R

    所以有 [a]R 包含于 [b]R,

    同理可证 [b]R 包含于 [a]R

    所以有 [a]R=[b]R

    得证


    商集的定义

    对于集合A上的等价关系R,其等价类的集合称为商集,比如例题二中的商集 I/R={ [0]R, [1]R, [2]R }

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

    千次阅读 2018-02-27 23:59:06
    一般我们用三张表来描述多对多的关系。例子:多个分类,每个分类有多个商品。另外每个商品在不同的分类。以下例子不太恰当,自己瞎举得,知道意思就好类:水果 A类 B类商品:A果,A菜,B果,B菜,我们创建数据表商品...

    一般我们用三张表来描述多对多的关系。

    例子:多个分类,每个分类有多个商品。另外每个商品在不同的分类。

    以下例子不太恰当,自己瞎举得,知道意思就好

    类:水果 A类 B类

    商品:A果,A菜,B果,B菜,


    我们创建数据表

    商品分类表

    id     分类

    1 水果
    2 A类

    3 B类

    微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑

    商品表

    id     商品名称

    1 A果


    3 B果

    4 B菜

    微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑

    分类_商品表

    专题ID  商品本身ID

        1     1
        1     3

        2     1

        2     2

        3      3

        3       4


    第三张表是中间表

    在模型层调用,多对多的关系是belongsToMany

    public function product(){

        return $this->belongsToMany('相对于这张表的关联模型','中间表表名' ,‘对应表的关联关系键’,‘本表的主键’);    

    }






            

           

    展开全文
  • 举例说明关系模式和关系的区别

    万次阅读 多人点赞 2018-05-03 20:37:41
    关系模式是静态的,比如我们看到的一张二维表的表头,即有哪些构成,每个列的名称,类型啊长度等等 关系是动态的,就是一张二维表的具体内容,就是除了标题以外的数据行,因为表数据经常被修改,插入,删除,所以...
  • 一Ø 一一是将数据表“垂直切分”,其实是不常见,或不常用的。也就是 A 表的一条记录对应 B 表的一条记录,为什么要这样的设计呢,不是增加了程度的复杂性吗,然而并不一定,举例说明: 1) 一个系统...
  • json序列化的对象中存在...使用@JsonBackReference标记在有多对一或者多对关系的属性上即可解决这个问题,举例: @JsonBackReference @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "market_id") privat
  • 1.关系型数据库通过外键关联来建立表与表之间的关系, 2.非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定  比如 有一个学生的数据:  姓名:张三,性别:男...
  • 我的电脑系统:Windows 10 64位 ...关系的分类(假设是A表和B表)第一种分类: 一一 (详述一关系及其实现)(一一,几乎不使用。所以,我们就一句话带过。) 一一的实现:既可以把表A的主键充当表B的外键
  • Spring Data JPA 之 一对一,一对多,多对关系映射

    万次阅读 多人点赞 2018-06-10 17:01:10
    JPA使用@OneToOne来标注一一的关系。 实体 People :用户。 实体 Address:家庭住址。 People 和 Address 是一一的关系。 这里用两种方式描述JPA的一关系。 一种是通过外键的方式(一个实体通过外键...
  • 对象设计时如何选择“一对多”与“多对一”关系 做面向对象设计的时候,我们常常面对这样一个问题。当对象之间存在一对多关系的时候,在物理设计的时候应该选择一对多关系还是多对关系举例来说,假设有一个订单...
  •  本来数据库一对一、一对多、多对关系并不复杂,但是最近在理解的时候感觉又感觉多了写新意,所以现在在来总结一下吧 一、首先给出三种关系的实例 1、一对一关系实例  * 一个人对应一张身份证,一张身份证对应一...
  • UML类图符号 各种关系说明以及举例

    万次阅读 2016-08-11 15:00:34
    UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。 依赖(Depe
  • mysql 笔记 ...请问数据库在创建表的时候如何设计表关系,一对一,一对多,多对多 请高手举例说明。谢谢!!! https://zhidao.baidu.com/question/251111120.html 效果图 DDL CREATE TABL...
  • 关联映射:一对多/多对一 存在最普遍的映射关系,简单来讲就如球员与球队的关系; 一对多:从球队角度来说一个球队拥有多个球员 即为一对多 多对一:从球员角度来说多个球员属于一个球队 即为多对一 数据表间一对多...
  • 一、多对关系(annotation 方式) 例如,一个人有多个梦想,如果外键加在person表上,出现冗余;一般多对关系,外键加在多得一方。代码举例: 例如:组与成员的关系。 1.group类 @entity public class group{ ...
  • 数据库实体间有三种关联关系:一对一,一对多,多对多。一对一实例:一个学生只有个身份证编号。 一对多实例:一个班级有多个学生。 多对多实例:多对多就是双向一对多,一个学生可以选择多门课,一门课也有多名学生...
  • 对象、类及从属关系举例

    千次阅读 2018-10-24 15:31:40
    鱼和泥鳅有什么区别? 鱼和泥鳅是不一样的,但是也一样。泥鳅是属于鱼的一种,但是泥鳅和别的种类的鱼又不一样,比如泥鳅和黄鳝就不一样,所以泥鳅和鱼既相同又不同。 假如有一个水桶,里面包含三条泥鳅,分别叫...
  • 上面把多关系的CActiveRecord翻译了一通, 这里只是讲一些比较常用的选项,不会面面具到的讲所有的选项。具体的还要在开发中慢慢体会。 具体代码如下,注释中稍作注释,便于理解: 相关的数据库代码 # -----...
  • MyBatis 映射对象关系举例(3)

    千次阅读 2013-08-22 15:57:31
    双向many2one/one2many关系中的组合关系(级联) 上面已经看到了双向many2one/one2many关系的映射。但是我们说,在关联关系中,还存在组合/聚合关系。 所谓聚合就是one方和many方可以独立存在;组合关系是强聚合关系...
  • photo_favour(图片收藏关系表):photo_id user_id 假设这几个表都相当大,需要进行分表。我的分表规则是: user表按照id取模,这样user相关的表都可以按照这个取模后的结果来分表; photo表按照id取模,...
  • 一个学生对应多个项目(多对关系) 项目表 学生表 项目号(主) 学生号(主) 学生-项目表 项目号(外) 学生号(外) 实现多对关系,必须要第三表来操作,且它们都...
  • MyBatis 映射对象关系举例(1)

    千次阅读 2013-08-22 15:57:26
    但是在Mybatis中设计对象映射,需要摒弃在hibernate中的一些既有思路,更的需要从SQL和性能角度考虑映射关系。 先来看看对象的关系,在这里使用Customer和Orders对象来完成单向的many2one。对象设计如下: //...
  • 进程和程序之间可以形成一对一,一对多,多对一,多对多的关系,分别举例说明在什么情况下会形成这样的关系? 进程的定义 从不同的角度进程可以有不同的定义,比较典型的定义有: (1)进程是程序的一次执行过程。 ...
  • 如何通过powerdesigner的设计,让多对多的关系,在数据生成对应的表结构。 举例,有个class表,一个student表,和 一个class_student关系: 在cdm中建好class和student。然后通过Relationship关联,点击...
  • linux中的jdk-6u24-linux-i586.bin是81M[root@hadoop local]# du -sh * 211M hadoop 60M hadoop-1.1.2.tar.gz 250M jdk 81M jdk-6u24-linux-i586.bin 8.0K mydata 4.0K word2.txt 4.0K word.txt将
  • 例1: 1!=3>4 运算结果为多少? 结果为: 1 例2: ...1、关系运算符有>、=、 ...2、关系、逻辑表达式的运算结果是一个逻辑值,1(真),0(假),不存在其他值,它们的值可作为算术值处理; 3、3>
  • 数据库中,一关系:从表的主键既是外键。 CREATE TABLE hasbend( -- 创建主表 hid INT PRIMARY KEY auto_increment, -- 指定字段 hname VARCHAR(50) ); ALTER TABLE hasbend -- 修改表名 REMOVE TO ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 307,404
精华内容 122,961
关键字:

多对多的关系举例