【发布时间】:2014-05-18 07:53:58
【问题描述】:
我开始学习 django 并且已经有一个问题: 如果表具有相似的字段,哪种模型创建更好? 1)标准方式形成官方教程,如
class Place(models.Model):
name = models.CharField(max_length=50)
address = models.CharField(max_length=80)
class Restaurant(models.Model):
name = models.CharField(max_length=50)
address = models.CharField(max_length=80)
serves_hot_dogs = models.BooleanField()
serves_pizza = models.BooleanField()
如您所见,两个模型具有相同的名称和地址字段。我在https://docs.djangoproject.com/en/1.6/topics/db/models/#multi-table-inheritance 中找到了 Multi-table ingeritance,它的工作原理如下: 2)
class Place(models.Model):
name = models.CharField(max_length=50)
address = models.CharField(max_length=80)
class Restaurant(Place):
serves_hot_dogs = models.BooleanField()
serves_pizza = models.BooleanField()
正如文档所说:Place 的所有字段也将在 Restaurant 中可用,尽管数据将驻留在不同的数据库表中。
嗯,这两者之间有什么主要区别吗?我应该使用哪一个?
【问题讨论】:
标签: python django django-models orm