欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

javascript - 类似值乎和分答之类的产品,在架构上是怎么区分普通用户和回答者的身份的?

程序员文章站 2022-04-18 21:48:33
...
一个WebApp,同时拥有两类用户,一类是提问的,一类是回答的,那如何才能更好地维护这两种身份及各自的状态?

方案一:同一个人需要注册两遍,一个账号是用户一个账号是回答者,切换身份需要先登出然后选择身份重新登录,这样似乎比较清晰

方案二:所有用户在初始状态下都是普通用户,而要晋升成为回答者的话,需要提交某种申请,通过后,在原有用户信息下添加回答者的标记,相对应的展示内容也会有所变化,甚至可以说,可能回不到普通用户的状态了

方案三:两类用户注册流程完全相同,注册完成后统一跳转登录页面,在登录页面选择一种身份登录,其实这个就是在单个账号下区分身份,切换也需要重新登录

分答只是举个例子,这两类用户的用户行为其实有很大不同的,在一些内容展现上也会有所区分,举几个例子,一类是病人,一类是医生,一类是司机,那么另外一类是乘客,那么是采用哪一种方案更好管理和维护呢?

不知道我描述的是否清晰,希望有做过双端或者多身份账户登录的经验人士指点指点

回复内容:

一个WebApp,同时拥有两类用户,一类是提问的,一类是回答的,那如何才能更好地维护这两种身份及各自的状态?

方案一:同一个人需要注册两遍,一个账号是用户一个账号是回答者,切换身份需要先登出然后选择身份重新登录,这样似乎比较清晰

方案二:所有用户在初始状态下都是普通用户,而要晋升成为回答者的话,需要提交某种申请,通过后,在原有用户信息下添加回答者的标记,相对应的展示内容也会有所变化,甚至可以说,可能回不到普通用户的状态了

方案三:两类用户注册流程完全相同,注册完成后统一跳转登录页面,在登录页面选择一种身份登录,其实这个就是在单个账号下区分身份,切换也需要重新登录

分答只是举个例子,这两类用户的用户行为其实有很大不同的,在一些内容展现上也会有所区分,举几个例子,一类是病人,一类是医生,一类是司机,那么另外一类是乘客,那么是采用哪一种方案更好管理和维护呢?

不知道我描述的是否清晰,希望有做过双端或者多身份账户登录的经验人士指点指点

知乎是不需要双端的,每个人即可以是提问者也可以是回答者。你在别人的问题下就是回答者,同时你可以提新问题。注册和用户管理都是一套,根据页面逻辑确定角色。

滴滴打车是需要双端的,因为司机和乘客完全是两类人两类行为,所以注册和用户管理都是两套

boss直聘这种比较特殊,注册和用户管理是一套流程,和知乎相似。但角色切换是主动进行的,而不是应用根据逻辑赖自动帮你选。在用户登录后会让你选择是招聘者还是应聘者,然后进入对应的页面,以后所有的行为都是对应的角色。当然在使用中也可以主动切换角色

我采取的方案

数据库设计相关:
所有角色用户信息都存一个基础信息表,然后每个角色都有对应的信息外表
比如基础信息表存储用户名、昵称、密码、手机、邮箱,外表:普通会员信息表、商户信息表等

业务流程相关:

  • 注册的时候可以选择先注册基础信息,然后再去引导让用户选择去完善外表信息

  • 登录都是统一登录,方便扩展做统一用户单点登录服务

  • 共享一个用户信息、安全设置等后台类似“我的淘宝”

  • 具体的业务处理根据角色独立开发后台