社交网络设计中用户对象和账户对象的区别是什么?

9

我正在为一个社交网络站点构建数据模型,但对于如何对用户和帐户进行建模感到困惑。

1)用户注册并创建帐户。因此,我们为用户分配一个用户ID,就像我们在大多数社交网站上看到的那样,这是相同的个人资料ID。现在,这也是帐户ID吗?还是有一个单独的帐户ID也被隐藏了?如果用户可以拥有多个个人资料,则用户ID与帐户ID分开,每个个人资料ID也是分开的吗?

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

3)用户和帐户对象的寿命是什么?如果用户关闭他的帐户,这意味着用户和帐户对象都会被删除吗?

4)谁持有用户个人资料、用户设置、隐私、好友等信息?用户对象还是帐户对象,哪个对象更高级?

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

6)什么才是一个对象?假设我们有状态更新、评论、个人资料详情。这些都是3个对象吗?还是都被认为是一种对象,只是3个类别?

2个回答

2

我理解你关于用户与个人资料的观点,但是用户与账户呢?

对于我的大部分设计来说,它们是相同的东西。你的大部分问题似乎源于这种混淆。为什么需要不同的ID?为什么要区分两者?如果你有这样的需求,也许确实需要。例如,也许你有一个跨越多个服务的用户账户。该用户在不同服务上有单独的账户信息,但是相同的登录信息。在这种情况下,你需要有两个单独的对象:登录(在认证系统中)和账户(在实际应用程序中)。但我想你不会创建这样一个庞大的系统。是吗?

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


1
用户 vs 账户 我觉得如何对一个员工编辑用户账户细节进行建模?我将UserType建模为管理员、员工、测试、会员、访客。此外,账户可以是商业账户、广告主账户等。除非我将这些特性放在账户下面而不是与账户同级别?想要从一开始就保险起见,这样就不需要在实时数据流入后更改模型。 - kei30
3
除非那些“账户”是用于您要构建的单独软件,否则它们并没有真正用处。您可能想要使用“角色”,而不是账户,将其分配给用户。例如,用户1可以是管理员、经理等,这是一对多的关系。所以您需要一个保存这些信息的表格。表格包括:用户、角色、用户角色。其中用户角色包括userid和roleid之类的信息。当然,有很多方法可以实现这个功能。您可能需要阅读一本有关数据库设计的书籍。我将帮助您规划和创建一个更具未来性的数据库。 - d-_-b

-1

系统、应用程序、软件或其他资源(例如文件)都有所有者和用户,例如会计应用程序、社交媒体应用程序、CRM应用程序、ERP应用程序等。

首先,我们需要定义什么是用户。用户是一个被识别、认证的真实人员,使用计算机、网络、应用程序等资源。

有些软件产品为其他系统提供服务,没有直接的最终用户(真实人员用户)。

我们不能允许这些用户在没有会计、资源管理、安全性的情况下使用资源。因此,我们必须为这些用户定义一个帐户,称为用户帐户。

帐户用于会计、责任分配、资源配置、用户或用户组配置,以及所有者等方面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接