¿Cuál es la diferencia entre un modelo heredado de tablas múltiples y una relación uno a uno entre los mismos dos modelos?

¿Cuál es la diferencia entre estas implementaciones? ¿Qué hace Django diferente (además de heredar Metaordering yget_latest_by atributo)?

1.
# models.py
from django.db import models

class Place(models.Model):
    name = models.CharField(max_length=50)

class Restaurant(models.Model):
    place = models.OneToOneField(Place)
    serves_pizza = models.BooleanField()
2.
class Place(models.Model):
    name = models.CharField(max_length=50)

class Restaurant(Place):
    serves_pizza = models.BooleanField()
3.
class Place(models.Model):
    name = models.CharField(max_length=50)

class Restaurant(Place):
    place = models.OneToOneField(Place, parent_link=True)
    serves_pizza = models.BooleanField()

Respuestas a la pregunta(2)

Su respuesta a la pregunta