我有一个层次结构,其中有不同类别的用户,如
- 行政人员
- 教师
- 家长
- 学生
我想把它们都放在一个名为usertable
的数据库表中
但是,所有类别都会有不同的属性,然后学生也会有他们的父母。因此,将存在与自己的用户表的多对多关系。
但如果我制作不同的表,那么不同的人的登录过程就会不同。
HOw我应该去
由于用户都将共享常见的详细信息,如用户名、密码等,因此您只需要为他们提供一个user
表。您实际上应该使用FOSUserBundle来实现这一点。如果不同类型的用户有不同的唯一详细信息集,我建议为每个用户类型创建额外的表,并使用外键将用户从user
表链接到新表(可能命名为parent_profile
、student_profile
等)
关于用户的层次结构,您应该使用角色。Symfony2文档提供了您需要的有关此主题的所有信息。
如果你需要将用户彼此联系起来,请阅读Doctrine 2对一对一自引用和一对多自引用关联的支持。如果对用户用户类型使用单独的实体类,则可以使用常规的一对一和一对多关联技术。
希望这能有所帮助。