Rjz*_*eng 5 python django foreign-keys one-to-one django-orm
我读过很多关于OneToOneField,ManyToManyField和Foreign Key的帖子,但是他们不是很清楚.我是Django和python编程的新手,目前正在尝试开发模型.有人可以用简单的语言向我解释,最好是举个例子,它们各自是什么?
想象一个存储您的图书集的数据库:
from django.db import models
class Place(models.Model):
address = models.CharField(max_length=50)
country = models.CharField(max_length=50)
class Publisher(models.Model):
name = models.CharField(max_length=30)
place = models.OneToOneField(Place, primary_key=True)
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
class Book(models.Model):
title = models.CharField(max_length=100)
publisher = models.ForeignKey(Publisher)
authors = models.ManyToManyField(Author)
Run Code Online (Sandbox Code Playgroud)
一对多/外键
每个Book都有一个Publisher,但Publisher可能已经出版了多本书.因此,他们处于一对多(书籍到出版商)的关系中.
一比一
每个Publisher都位于一个Place,每个Place只能容纳一个Publisher.因此,他们是一对一的关系.您可以将Place信息(address和country)与Publisher模型放在一个表中,但有时候最好有单独的模型.例如,如果您不知道Placefor each Publisher,则不需要占用空行的大量空间.
许多一对多
每个人Book也有一个或多个Author.然而,一个人Author可能写了多个Books,所以他们处于多对多的关系中.
如果您仍需要一些指导,我建议您查看Django Book的模型章节.
| 归档时间: |
|
| 查看次数: |
1397 次 |
| 最近记录: |