在我的软件中,我有三个实体:人员,教师和审查员,具有以下结构:
<?php
class Person
{
protected $id;
protected $firstname;
protected $lastname;
}
class Teacher extends Person
{
protected $subjects;
}
class Examiner extends Person
{
protected $certificates;
}
这是我的问题:我计划使用 JOINED Class Table 进行继承,我希望Person是一个唯一的实体。但是我想将它重用于Examiner和Teacher。所以我有两个不同的实体审查员和教师,但他们俩的一个基本实体人。
例如:
Person | id | firstname | lastname
| 1 | Emile | Example
Teacher | id | subjects
| 1 | Math, Religion, English <--- Inheritance of Person with id 1
Examiner | id | certificate
| 1 | Bachelor of Science <--- Inheritance of Person with id 1, too
使用Doctrine注释是否有可能实现这一目标?我不喜欢将实体人作为两个显式类的关系。我喜欢重现一个现实世界的szenario,所以,例如一个老师没有一个人,而不是一个人。
希望有人知道我想要达到的目标。
谢谢!
答案 0 :(得分:1)
我猜你应该声明一个抽象的MappedSuperClass&#34; human&#34;例如,它拥有共同的属性和方法。它不会被保留在数据库中。
然后宣布继承人的人,教师和考官,并声明他们自己的特定属性和方法。这是将存储在数据库中的具体表格。
这应该有所帮助:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/inheritance-mapping.html
问候。