关系映射

Posted zengsf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系映射相关的知识,希望对你有一定的参考价值。

1.一对一映射
  1.语法
    在关联的两个类中的任何一个类都可以增加对另一个类的引用

    属性 = models.OneToOneField(Entry)

    ex:
      class Author(models.Model):
        .... ....

      class Wife(models.Model):
        .... ....
        #增加对Author的一对一引用
        author = models.OneToOneField(Author)
    在数据库中:
      会生成一个外键(author_id)列在 wife 表中,会引用在 author 表的主键
    在 Author 中:
      增加一个隐式属性 - wife,来表示author所对应的wife(其实就是反向引用属性)
  2.查询
    1.正向查询 :通过 Wife 找 Author
      特点:通过自定义的关联属性查找对应实体
      wife = Wife.objects.get(id=1)
      author = wife.author
    2.反向查询 :通过 Author 找 Wife
      特点:通过反向引用属性查找对应的实体
      author = Author.objects.get(id=1)
      wife = author.wife

2.一对多映射
  1.语法
    在"多"表中增加对"一"表的外键引用,在"多"实体中增加对"一"实体的引用
    在 "多" 实体中增加:
      属性 = models.ForeignKey(Entry)

      ex: Book(多) 和 Publisher(一)
        class Book(models.Model)
          ... ...
          publisher = models.ForeignKey(Publisher)

    数据库中体现:
      Book 表中 增加一个外键列 publisher_id ,引用自 Publisher 表中的主键
    在实体类中的:
      1.Book 中会有一个 publisher 属性 来表示对应的 Publisher 的对象
      2.Publisher 中会有一个隐式属性 - book_set,用来表示该 publisher 对应的所有的 Book 对象的查询。


































以上是关于关系映射的主要内容,如果未能解决你的问题,请参考以下文章

求助Hadoop映射关系

mybatis xml数据层框架应用--Mybatis关系映射之一对多关系映射

JPA:映射关联关系------映射单向多对一的关联关系

mybatis xml数据层框架应用--Mybatis关系映射之一对一关系映射

学习笔记之Hibernate_映射关系之一对多映射关系

Hibernate多对多关系映射(建表)