Dan*_*l D 1 django inheritance foreign-key-relationship
我有一个django应用程序,我想在基础级别定义两个类之间的关系.定义这些基类的子项之间的关系对我来说也是有意义的 - 所以我得到这样的东西:
class BaseSummary(models.Model):
base_types...
class BaseDetail(models.Model):
base_detail_types...
base_summary = models.ForeignKey('BaseSummary')
class ChildSummary(BaseSummary):
child_summary_types...
class ChildDetail(BaseDetail):
child_detail_type...
child_summary = models.ForeignKey('ChildSummary')
Run Code Online (Sandbox Code Playgroud)
django支持这个吗?如果它受支持,这样会导致可扩展性问题吗?
谢谢!
是的,这是支持的.是的,它可能会导致性能问题.你应该阅读Jacob关于模型继承的帖子:http://jacobian.org/writing/concrete-inheritance/
从1.0开始,Django支持模型继承.这是一个简洁的功能,可以大大提高您的建模选项的灵活性.
然而,模型继承也提供了一个非常好的机会射击自己的脚:具体(多表)继承.如果您正在使用具体的继承,Django几乎在每个查询上都会创建隐式连接回父表.这可能会彻底破坏数据库的性能.