【发布时间】:2019-11-17 17:21:54
【问题描述】:
我有三个模型,一个超类和两个子类。两个子类都属于另一个模型(通过外键表示)。
我不确定我的 FK 的最佳设置是什么样的?我是否将外键放在超类、子类或两者中?也许不仅有一种方法,还有多种方法?
每个建筑物都可以有许多能源对象,这意味着它可以有许多加热和冷却对象。每个 Heating/Cooling/Energy 对象都属于一个建筑物。所以经典的一对多关系用外键表示。
这是我的模型:
超类
class Energy(models.Model):
year : models.BigIntegerField(...)
value : models.IntegerField(...)
connected_building : ForeignKey ??????
子类
class Heating(Energy):
connected_building : ForeignKey ?????
class Cooling(Energy):
connected_building : ForeignKey ?????
相关类
class Building(models.Model):
name = models.Charfield(...)
我有点害怕弄乱我的数据库,所以非常感谢任何帮助。提前致谢!
【问题讨论】:
-
我认为它应该在超类中
-
感谢 ruddra 的评论。因此,如果我将它放入超类中,它将被子类继承,并且每次我创建一个新的加热/冷却对象时,它都会与建筑物动态相关。新能源物体也一样?
标签: django django-models foreign-keys