Inheritance 不完全专业化与Doctrine2';s类表继承

Inheritance 不完全专业化与Doctrine2';s类表继承,inheritance,doctrine-orm,Inheritance,Doctrine Orm,我希望表示数据库中的文件,并根据是音频文件、视频文件还是图像文件来存储元数据 处理这个问题的规范化方法是多个表,每个表只包含特定文件类型所需的列。根/超类表将保存所有文件的公共信息(路径、名称、大小、日期等) 问题: 除了上面列出的“可分类”文件之外,还有一些文件我不会提供进一步的元数据。因此,需要进入数据库的只是根/超类表中的条目 阅读了本文之后,我相信Doctrine2将不允许未进一步专门化的对象: 映射的超类不能是实体[…] 有没有办法做到这一点?为什么不可能呢?在这种情况下,我最终围绕着

我希望表示数据库中的文件,并根据是音频文件、视频文件还是图像文件来存储元数据

处理这个问题的规范化方法是多个表,每个表只包含特定文件类型所需的列。根/超类表将保存所有文件的公共信息(路径、名称、大小、日期等)

问题: 除了上面列出的“可分类”文件之外,还有一些文件我不会提供进一步的元数据。因此,需要进入数据库的只是根/超类表中的条目

阅读了本文之后,我相信Doctrine2将不允许未进一步专门化的对象:

映射的超类不能是实体[…]


有没有办法做到这一点?为什么不可能呢?

在这种情况下,我最终围绕着原则工作,因为我不仅要完成不完全的专门化,还要完成多重继承

多重继承:我希望一些文件同时是音频文件和视频文件

在一个条令场景中,我认为必须将每个可能的叶子组合指定为一个类。正如我在评论中所说的,即使是非专门化的情况也需要是一个不同于根类的类


所以,我正在做的是手动SQL查询和自己构建对象。基本上,在本例中接管ORM的一部分。这使我能够忠实于我的原始数据库模式。

http://stackoverflow.com/questions/7037882/doctrine-table-class-inheritance-when-one-subclass-has-no-extra-attributes/9750756#9750756
声明将在不添加任何属性的情况下创建另一个子类。然后,Doctrine2将创建一个具有单个列的表:
id