javascript - 类似值乎和分答之类的产品,在架构上是怎么区分普通用户和回答者的身份的?
一个WebApp,同时拥有两类用户,一类是提问的,一类是回答的,那如何才能更好地维护这两种身份及各自的状态?
方案一:同一个人需要注册两遍,一个账号是用户一个账号是回答者,切换身份需要先登出然后选择身份重新登录,这样似乎比较清晰
方案二:所有用户在初始状态下都是普通用户,而要晋升成为回答者的话,需要提交某种申请,通过后,在原有用户信息下添加回答者的标记,相对应的展示内容也会有所变化,甚至可以说,可能回不到普通用户的状态了
方案三:两类用户注册流程完全相同,注册完成后统一跳转登录页面,在登录页面选择一种身份登录,其实这个就是在单个账号下区分身份,切换也需要重新登录
分答只是举个例子,这两类用户的用户行为其实有很大不同的,在一些内容展现上也会有所区分,举几个例子,一类是病人,一类是医生,一类是司机,那么另外一类是乘客,那么是采用哪一种方案更好管理和维护呢?
不知道我描述的是否清晰,希望有做过双端或者多身份账户登录的经验人士指点指点
回复内容:
一个WebApp,同时拥有两类用户,一类是提问的,一类是回答的,那如何才能更好地维护这两种身份及各自的状态?
方案一:同一个人需要注册两遍,一个账号是用户一个账号是回答者,切换身份需要先登出然后选择身份重新登录,这样似乎比较清晰
方案二:所有用户在初始状态下都是普通用户,而要晋升成为回答者的话,需要提交某种申请,通过后,在原有用户信息下添加回答者的标记,相对应的展示内容也会有所变化,甚至可以说,可能回不到普通用户的状态了
方案三:两类用户注册流程完全相同,注册完成后统一跳转登录页面,在登录页面选择一种身份登录,其实这个就是在单个账号下区分身份,切换也需要重新登录
分答只是举个例子,这两类用户的用户行为其实有很大不同的,在一些内容展现上也会有所区分,举几个例子,一类是病人,一类是医生,一类是司机,那么另外一类是乘客,那么是采用哪一种方案更好管理和维护呢?
不知道我描述的是否清晰,希望有做过双端或者多身份账户登录的经验人士指点指点
知乎是不需要双端的,每个人即可以是提问者也可以是回答者。你在别人的问题下就是回答者,同时你可以提新问题。注册和用户管理都是一套,根据页面逻辑确定角色。
滴滴打车是需要双端的,因为司机和乘客完全是两类人两类行为,所以注册和用户管理都是两套
boss直聘这种比较特殊,注册和用户管理是一套流程,和知乎相似。但角色切换是主动进行的,而不是应用根据逻辑赖自动帮你选。在用户登录后会让你选择是招聘者还是应聘者,然后进入对应的页面,以后所有的行为都是对应的角色。当然在使用中也可以主动切换角色
我采取的方案
数据库设计相关:
所有角色用户信息都存一个基础信息表,然后每个角色都有对应的信息外表
比如基础信息表存储用户名、昵称、密码、手机、邮箱,外表:普通会员信息表、商户信息表等
业务流程相关:
注册的时候可以选择先注册基础信息,然后再去引导让用户选择去完善外表信息
登录都是统一登录,方便扩展做统一用户单点登录服务
共享一个用户信息、安全设置等后台类似“我的淘宝”
具体的业务处理根据角色独立开发后台

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

登录 CakePHP 是一项非常简单的任务。您只需使用一项功能即可。您可以记录任何后台进程(如 cronjob)的错误、异常、用户活动、用户采取的操作。在 CakePHP 中记录数据很容易。提供了 log() 函数

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写
