社交网络设计中用户和帐户对象之间的区别?

时间:2010-09-06 00:50:55

标签: database-design social-networking datamodel

我正在为社交网站建立一个数据模型,而忽略了如何为用户和帐户建模。

1)用户注册并创建一个帐户。因此,我们在大多数社交网站上为用户分配了一个用户ID,我们看到的是相同的个人资料ID。现在是帐户ID吗?或者是否还隐藏了单独的帐户ID?如果用户可以拥有多个配置文件,那么用户ID与帐户ID分开,该帐户ID与每个配置文件ID分开?

2)我们假设1个用户只有1个帐户。但是,当用户正在编辑他的帐户或让管理员编辑用户的帐户时,用户正在编辑帐户,因此需要两个单独的ID才能对此进行建模?

3)用户和帐户对象的生命周期是什么?如果用户关闭了他的帐户,这意味着用户和帐户对象都会被杀死?

4)谁拥有用户个人资料详细信息,用户设置,隐私,朋友等?用户对象或Account对象,哪个对象优越?

5)用户可以创建/管理的系统对象,如照片,视频等,用户或帐户对象拥有的那些对象是什么?

6)究竟是什么造成了一个对象?假设我们有状态更新,评论,个人资料详细信息。这三个对象?或者都考虑了1种类型的对象,只有3种类别?

1 个答案:

答案 0 :(得分:1)

我理解您关于用户与个人资料的观点,但用户与帐户有关吗?

对于我的大部分设计,这都是一回事。你的大多数问题似乎源于这种混乱。为什么需要单独的ID?你为什么要区分这两者。如果你有需要,那么也许如此。例如,您可能拥有跨多个服务的用户帐户。此用户具有关于不同服务的单独帐户信息,但具有相同的登录名。在这种情况下,您需要有两个单独的对象:登录(在身份验证系统中)和帐户(在实际应用程序中)。但我不认为你是在创造这么大的系统。否?

6) 如果所有这些都不能在相同的代码中表示,则它们必须是单独的对象或从类似的对象派生。例如,在某些门户网站中,我看到PM(私人消息)系统看起来像是两个或更多人之间的私人论坛帖子。在没有查看源代码的情况下,我会想到论坛主题/主题是相同的或类似的,也许是从相同的对象派生出来的。