2010-09-06 31 views
4

我正在构建一个社交网站的数据模型,并失去了如何建模用户和帐户。社交网络设计中User和Account对象的区别?

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

2)我们假设1个用户只有1个帐户。但是当用户正在编辑他的账户或者假设管理员编辑了用户的账户时,用户正在编辑一个账户,因此需要两个独立的ID来模拟这个账户?

3)用户和账户对象的生命是什么?如果用户关闭了他的账户,那意味着用户和账户对象都被杀了?

4)谁拥有用户配置文件的详细信息,用户设置,隐私,朋友等?用户对象或帐户对象,以及哪个对象优越?

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

6)究竟是什么使一个对象?假设我们有状态更新,评论,个人资料详情。这3个对象?或者全部考虑1种类型的对象和3种类别?

回答

1

我理解你的观点,关于用户与配置文件,但用户与帐户?

对于我的大部分设计,这是同样的事情。你的大部分问题似乎都源于这种混淆。为什么你需要单独的ID?你为什么要区分这两者。如果你有需要,那么也许是这样。例如,也许你有一个跨越多个服务的用户帐户。该用户具有不同服务上的单独帐户信息,但具有相同的登录信息。在这种情况下,您需要有两个单独的对象:登录(在认证系统中)和帐户(在实际应用程序中)。但我不认为你正在创建如此庞大的系统。没有?

6) 如果所有这些不能用相同的代码表示,它们必须是单独的对象或派生自类似的对象。例如,在某些门户网站中,我看到PM(私人消息)系统看起来像是两个或更多人之间的私人论坛主题。没有看过源代码,我会想象那个论坛的主题/线程是相同的或相似的,可能来自同一个对象。

+0

用户vs账户我觉得,因为如何建模一个员工编辑用户的账户细节?我将UserType建模为Admin,Employee,Test,Member,Visitor。另外,帐户可以是商业帐户,广告客户帐户等。除非我在帐户下方使用这些功能,并且与帐户不在同一级别。想要在开始时安全地播放它,所以一旦实时数据流入,就不需要更改模型。 – kei30 2010-09-06 01:30:00

+0

除非这些“账户”用于您要构建的单独软件,否则它们并不真正有用。您可能希望拥有可以分配给用户的“角色”。所以用户:1是管理员,经理等。这是一对多的关系。所以你需要一个表格来保存它。表:用户,角色,userrole。 userrole是:userid,roleid ..类似的东西。有很多方法可以做到这一点。您可能想要阅读一本书或关于数据库设计的内容。我会帮助你制定一个更有前途的数据库。 – 2010-09-06 10:05:33