多个数据库中的Symfony / Doctrine用户

时间:2013-12-23 12:35:24

标签: php symfony doctrine-orm subdomain fosuserbundle

对于项目,我们希望使用包含不同类型用户的多个数据库。该网站分为多个子域。这意味着:1个子域有1个数据库。我们有一个中央数据库来跟上现有的子域数据库。

在中央数据库中,我们的管理员用户必须能够管理每个子域应用程序。在其他数据库中,我们有子域特定用户。用户存储为Doctrine实体(Symfony 2的FOS用户包),并通过其ID绑定到其他实体(外键约束)。中央数据库和子域数据库的实体相同。

用户必须绑定到子域特定条目(读取:实体实例)。对于子域特定用户,这将没有问题,但我们不知道如何为管理员用户(位于中央数据库中)实现此目的。无法满足外键约束,因为管理员用户不会在子域特定数据库中“存在”。

重构一些实体不会有问题。我们希望你们有任何建议。提前谢谢。

P.S。 我们可以轻松地在所有数据库之间切换。除了登录之外,这在整个应用程序中都是可能的。这由FOS用户包

处理

1 个答案:

答案 0 :(得分:0)

我建议您为子域中的所有用户使用一个基本用户实体,在集中的位置,并且对于每个子域,将存在一个扩展的用户实体,其中存储了与特定子域相关的额外信息。可能的结构可以使用单表继承,但它不是必须的。