python - Django models with same or similar fields -
i started learn django , have 1 question: kind of model creation better if tables have similar fields? 1) standart way form official tutorial like
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()
as see both models have same name , address fields. found in https://docs.djangoproject.com/en/1.6/topics/db/models/#multi-table-inheritance multi-table ingeritance works this: 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()
as doc says: of fields of place available in restaurant, although data reside in different database table.
well, there principal differences beteeen two? , 1 shall use?
in case, think should use inheritance (solution 2).
because restaurant
special place
, means restaurant have field name
, address
, additionally, restaurant have field serves_hot_dogs
, serves_pizza
.
considering above description, solution reasonable. but, restaurant
place
, restaurant
must can processed place
. in solution1, restaurant
, place
separated, cannot process restaurant
place
.(just considering oop)
in other side, in solution1, if save place
address a, , add restaurant
same address. save same address twice in database, leads redundant , inconsistency.
this question similar different of composition , inheritance in oop.
Comments
Post a Comment