【问题标题】:Why doesn't Django support Single Table Inheritance?为什么 Django 不支持单表继承?
【发布时间】:2013-07-01 19:59:36
【问题描述】:

决定在 Django 中不支持单表继承的原因是什么?

STI 是一个糟糕的设计吗?是否会导致性能不佳?它会与原来的 Django ORM 冲突吗?

只是想知道,因为它已经丢失了大约十年了,所以一定是有意识地做出了永远不会支持它的决定。

【问题讨论】:

标签: python django database-design frameworks relational-database


【解决方案1】:

一个原因可能是 Django(当前)没有能力在创建后修改数据库表。

您可以使用代理模型“某种程度地”进行 STI。这将不允许您在不同的模型上拥有不同的字段,但它允许您将不同的行为(通过模型方法)附加到不同的子类。

但是,如果您决定创建带有额外字段的子类,Django 将无法更新数据库以反映这一点。

【讨论】:

    猜你喜欢
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 2016-04-18
    • 2014-03-04
    • 2011-03-17
    • 2011-02-21
    相关资源
    最近更新 更多