我应该根据用户在symfony2和mysql中的角色创建一个或多个用户表吗


Should i make one user table or more depending upon their roles in symfony2 and mysql

我有一个层次结构,其中有不同类别的用户,如

  1. 行政人员
  2. 教师
  3. 家长
  4. 学生

我想把它们都放在一个名为usertable 的数据库表中

但是,所有类别都会有不同的属性,然后学生也会有他们的父母。因此,将存在与自己的用户表的多对多关系。

但如果我制作不同的表,那么不同的人的登录过程就会不同。

HOw我应该去

由于用户都将共享常见的详细信息,如用户名、密码等,因此您只需要为他们提供一个user表。您实际上应该使用FOSUserBundle来实现这一点。如果不同类型的用户有不同的唯一详细信息集,我建议为每个用户类型创建额外的表,并使用外键将用户从user表链接到新表(可能命名为parent_profilestudent_profile等)

关于用户的层次结构,您应该使用角色。Symfony2文档提供了您需要的有关此主题的所有信息。

如果你需要将用户彼此联系起来,请阅读Doctrine 2对一对一自引用和一对多自引用关联的支持。如果对用户用户类型使用单独的实体类,则可以使用常规的一对一和一对多关联技术。

希望这能有所帮助。