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)
设想一个数据库,它存储您的图书集:
一对多/外键
每个
Book
都有一本Publisher
,但是Publisher
可能已经出版了多本书。因此,它们是一对多(图书对出版商)的关系。在一对一
每个})与{}模型放在一个表中,但有时最好有单独的模型。例如,如果您不知道每个
Publisher
位于一个Place
,每个Place
只能容纳一个Publisher
。因此他们是一对一的关系。您本可以将Place
信息(address
和{Publisher
对应的Place
,则不需要用空行占用大量空间。在多对多
每个},因此它们是多对多的关系。在
Book
也有一个或多个Author
s。但是,Author
可能写了多个{如果你还需要一些指导,我建议你看看the model chapter of the Django Book。
相关问题 更多 >
编程相关推荐