我正在使用 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 有很多用户实体实例(例如,每个朋友一个),但只有一个用户登录实例,所以如果我们将它用于所有内容将是错误的。
我想知道其他意见/建议。
我希望它没有被混淆(或者我没有混淆)。
提前谢谢了。