我应该创建一个或多个用户表,具体取决于他们在symfony2和mysql中的角色

时间:2012-07-11 01:47:22

标签: php mysql database-design symfony

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

  1. 员工管理员
  2. 教师
  3. 家长
  4. 学生
  5. 我想把它们全部放在一个名为usertable

    的数据库表中

    然后所有类别都会有不同的属性,然后学生也会有他们的父母。因此,与自己的用途有很多很多关系。

    但如果我制作不同的表格,那么登录过程对于不同的人来说会有所不同。

    我应该去吗

1 个答案:

答案 0 :(得分:1)

由于用户将共享共同的详细信息,例如用户名,密码等,因此您只需要一个user表。您实际上应该使用FOSUserBundle来实现此目的。如果不同类型的用户具有不同的唯一细节集,我建议为每个用户类型创建其他表,并使用外键将用户从user表链接到新表(可能命名为{{1} },parent_profile等。)

关于用户的层次结构,您应该使用角色。 Symfony2 docs包含您在此主题上需要的所有信息。

如果您需要将用户相互链接,请阅读Doctrine 2对one-to-one self referencingone-to-many self referencing关联的支持。如果为用户用户类型使用单独的实体类,则可以使用常规的一对一和一对多关联技术。

希望这有帮助。