我正在为一个社交网站建立数据模型,却迷失了如何为用户和帐户建模的方法。
1)用户注册并创建一个帐户。因此,我们在大多数社交网站上为用户分配了一个用户ID,就像我们看到的那样,它是相同的个人资料ID。现在也是帐户ID吗?或者是否还隐藏了一个单独的帐户ID?如果用户可以有多个配置文件,那么用户ID与帐户ID是分开的,而帐户ID是与每个配置文件ID分开的?
2)我们假设1个用户只有1个帐户。但是,当用户正在编辑其帐户时,或者假设管理员在编辑用户的帐户时,则该用户正在编辑一个帐户,那么要对此建模需要两个单独的ID?
3)用户和帐户对象的生命周期是多少?如果用户关闭帐户,这意味着用户和帐户对象都被杀死?
4)谁拥有用户个人资料详细信息,用户设置,隐私, friend 等?用户对象或帐户对象,哪个对象更好?
5)用户可以创建/管理一些系统对象,例如照片,视频等,这些系统对象是用户还是帐户对象?
6)什么才是真正的物体?假设我们有状态更新,评论,个人资料详细信息。这是三个对象吗?还是全部认为是1种对象而只有3类?
最佳答案
我了解您关于用户与个人资料的观点,但是用户与帐户之间的关系?
对于我的大多数设计而言,都是一样的。您的大多数问题似乎都源于这种困惑。为什么需要单独的ID?您为什么要区分两者。如果您有需要,那么也许可以。例如,也许您有一个跨多个服务的用户帐户。该用户具有关于不同服务的单独帐户信息,但是具有相同的登录名。在这种情况下,您需要具有两个单独的对象:登录(在身份验证系统中)和帐户(在实际应用程序中)。但是我不认为您正在创建如此大的系统。不?
6)
如果所有这些不能用同一代码表示,则它们将必须是单独的对象或从相似的对象派生。例如,在某些门户网站中,我看到PM(私有(private)消息)系统看起来像两个或多个人之间的私有(private)论坛线程。如果没有查看源代码,那么我会想到论坛主题/线程是相同或相似的,也许是从相同的对象派生的。