リレーショナルマッピングでのDjangoのモデル

まず、1つのマッピング
図1を参照すると、一何の
テーブルAとBのレコードは、テーブル内のレコードが関連していることができる
:等、一対一

2、構文
二つのクラスに関連付けられたクラスの任意の増加可能:
属性models.OneToOneField =(エントリ)
。3、照会
クラス妻(models.Model):
  ...
  著者= models.OneToOneField(著)

。1、nはクエリに:妻の著者を探していることにより、
妻= Wife.objects.get(上記ID = 1)
著者= wife.author

図2は、逆引き:著者によって妻を探して

著者属性が暗黙的に追加で妻はデフォルトでDjangoのOneToOneFieldです

著者= Author.objects.get(ID = 14)
の妻= author.wife

 

第二に、多くのマッピング
1、多くのもので
、データテーブルには、表Bのデータを複数に関連付けることができる
表AにBデータとテーブルに関連付けられているデータのみ

以下のような:プレス(出版社)、書籍(書籍)

  製品タイプ(GoodsType)、商品(グッズ)

2、データベースに反映
多く反映するように、外側キー(ForeignKeyの)を介して
、「多くの」テーブル内で参照「」主キーを増加外部キー(ForeignKeyの)を

3、構文
外部キー(ForeignKeyの)
"多くの"エンティティ追加:
属性= models.ForeignKey(エントリー)

4、お問い合わせ
ブック(およびそれ以上)と出版社(A)

クラスブック(models.Model):
  ... 
  パブリッシャー= models.ForeignKey(出版社)

図1に示すように、前方にクエリ-予約パブリッシャによってクエリ
ブック= Book.objects.get(上記ID = 1)
出版社book.publisher =
クエリブック出版社を介して-図2は、逆引き

Djangoは、関連付けられたオブジェクト1に_set性を増加するクエリデータを複数

出版社と書籍の関係と合わせて:Publisherでbook_setプロパティエンティティを追加します

出版社= Publisher.objects.get(ID = 1)
図書= publisher.book_set.all()

 

三、多对多映射
1、什么是多对多
A表中的一条记录可以与B表中的任意多条记录匹配
B表中的一条记录可以与A表中的任意多条记录匹配
如:作者与书籍

2、在数据库中的体现
必须创建第三张表,关联涉及到的两张表数据
3、语法
允许在任何一个实体中增加操作:
entry = models.ManyToManyField(Entry)

4、查询
class Author(models.Model):
  ... 
  book = models.ManyToManyField(Book)
1、正向查询-通过Author查询所有的Book
author = Author.objects.get(id=1)
books = author.book.all()

2、反向查询-通过Book查询所有的Author
Django中 会在Book 实体中增加一个隐式属性 author_set

book = Book.objects.get(id=1)
authors = book.author_set.all()

おすすめ

転載: www.cnblogs.com/hooo-1102/p/11775714.html