一尘不染

Django中的单表继承

django

Django中对单表继承有显式支持吗?最后我听说,该功能仍在开发和辩论中。

在此期间是否可以使用库/黑客来捕获基本行为?我有一个混合了不同对象的层次结构。具有Employee类,雇员类型的子类和manager_id(parent_id)的公司结构的规范示例将很好地逼近我正在解决的问题。

就我而言,我想代表一个想法,即一个员工可以在由另一个员工管理的同时管理其他员工。没有用于Manager和Worker的单独的类,这使得很难在表之间进行分配。子类代表员工,程序员,会计师,销售人员等的类型,并且独立于谁来监督谁(好吧,我认为它在某些方面不再是典型的公司)。


阅读 527

收藏
2020-04-02

共1个答案

一尘不染

关系数据库不支持继承,因此在从对象到数据库的映射时,我们必须考虑如何在关系表中表示漂亮的继承结构。当映射到关系数据库时,我们尝试最小化在多个表中处理继承结构时可以快速建立的联接。单表继承将继承结构的所有类的所有字段映射到单个表中。

即,用于实体类的整个层次结构的单个数据库表。Django不支持这种继承。

2020-04-02