【发布时间】:2025-12-09 22:05:01
【问题描述】:
我正在使用 FOSUserBundle 在 Symfony2 中进行开发,但我不太确定 DDBB 设计。我会尽量简单地解释我的情况。 假设我的项目就像 facebook。所以你知道实体“用户”将是整个应用程序中最重要和最相关的,一切都与它相关。
关键是我不确定如何使用 FOSUserBundle 处理 DB 层(表、学说实体和关系)。默认情况下,实体 User 必须具有所有 FOSUserBundle 字段(用户名、电子邮件、令牌、email_canonical 等等......)。 所以我怀疑我是否应该创建另一个实体来处理与其他实体的关系,比如“UserReal”。它将与第一个实体“用户”具有 OneToOne 关系,女巫将仅用于登录或访问目的。或者只创建一个对象“用户”并用它处理所有事情。
我的选择:
1。 - 实体“UserSecurity”女巫扩展了 FosUserBundle 用户实体,并且仅限用于访问(登录、注销、注册)情况。 - 有实体“UserReal”,或者只是“用户”女巫拥有来自用户的每个字段属性(姓名、姓氏、位置)。它与其他实体(如页面、组、照片)有关系。它是“主要”实体,具有生成值的策略。 - UserSecurity 通过 UserSecurity->id_user 与用户建立 OneToOne 关系。 - 注册必须插入两个实体。
-
反过来
- 与第 1 点类似,但主要实体是“UserSecurity”,因此 id 将在其中,生成值的策略也将在其中。
- 用户实体,将具有字段 id_user 与 OneToOne 到 UserSecurity 的关系。
-
使用一个对象
- 在一个实体中扩展 FOSUserBundle 并设置与其相关的所有关系。
- 我不喜欢这样,因为我需要一个没有安全选项的干净对象用户。
我认为 facebook 有很多 User 实体实例(例如,每个朋友一个),但只有一个用户登录实例,所以如果我们将它用于所有内容将是错误的。
我想知道其他意见/建议。
我希望它没有混淆(或者我没有混淆)。
非常感谢。
【问题讨论】:
标签: symfony doctrine-orm fosuserbundle