我应该在Doctrine中为多个用户级别使用哪种继承类型

时间:2012-07-13 06:59:11

标签: php oop doctrine-orm

我是OOP的新手,我很困惑,我该怎么办。我的主要要求是我想拥有基本用户类:

User
id
username
email
password
salt
.....

Student
name
gender
school
address

Teacher
name
study
salary

如果我应该使用单表继承或类表继承,我感到很困惑。因为所有学生或老师都要登录系统,所以我想保持这些数据的共同点

3 个答案:

答案 0 :(得分:0)

学生和教师都是用户,因此学生从用户延伸,教师也是如此。

检查继承是否合法,可以通过在两个对象之间说'是'来完成。

“学生是老师” - >假

“学生是用户” - >真

答案 1 :(得分:0)

由于StudentTeacher有更多不同的字段,因此您应该使用类表继承。单表继承将强制您拥有许多具有多个NULL值的行,从数据库设计的角度来看这是一个坏主意。

顺便说一句,既然你在两个子类中都有name字段,你可以将它移到层次结构中。

答案 2 :(得分:0)

我可以推荐你这些书。他们使这个话题非常清楚。

  • PHP设计模式
  • 清洁代码(Robert C. Martin)

它们可以帮助您了解如何构建清晰且可维护的软件,并在对象之间建立清晰的关系。我认为必须为所有OOP用户阅读!