文档章节

对2b、2c账号的思考

那只是一股逆流
 那只是一股逆流
发布于 10/13 22:51
字数 2307
阅读 911
收藏 12
  • 2b:to business,对商业(机构);2c:to consumer,对消费者(个人)
  • 2b的产品:主要针对机构、企业的产品;2c的产品:主要针对消费者、个人的产品

假设你想推出一款针对记者,提高他们工作效率的产品,那么在设计账号体系时需要好好思考这个问题:这款产品它是2b还是2c的

不要小看这个问题,这个问题的答案会决定这个产品的账号体系的结构,以及账号体系后续的可扩展性。有这么严重么?是的。

那好,那就先回答这个问题:国内的记者大部分都是属于机构的,比如新华社、人民日报等。这些报社都是机构,假设这款产品就面对2b的产品。要想把产品推广到这些机构,暂且先按照面向2b的模式去设计账号体系。考虑下面的问题:


面向2b的模式

  1. 一个机构往往很多人,第一个问题就是能够把一个机构下的用户都归属到这个这个机构;
  2. 第二个问题:谁来创建机构中的用户?
  3. 第三个问题:机构中的用户如何登陆,通过手机?邮箱?用户名?

把这三个看似简单的问题考虑清楚,基本上就能设计出正确2b账号体系。那一一来回答这三个问题:

  1. 这个问题好解决,我在用户表中增加一个字段orgId用来标识这个用户是属于哪个机构;必须先有机构实体才有机构用户,机构用户不能脱离机构
  2. 第二个问题映射到机构中来:肯定是主管人事的领导把你拉到这个企业中来的,那么在产品中也应该由这个角色帮你创建账号。我们暂且将这个角色叫做管理员,这里需要注意的是一个机构中的管理员往往有多个,设计的表结构的时候需要考虑到这一点。同理,机构中还有其他的角色; 避免用显示字段来表示用户角色,应该用权限去划分用户角色
  3. 第三个问题其实是在问:到底什么才是用户在这个机构中的标识,手机号?不,不能是手机号。因为手机号是属于个人的,不随着机构的产生而产生、机构的消亡而消亡。邮箱同理,也不合适(这里指的是个人邮箱,机构专属邮箱除外)。所以最好使用使用机构专属用户名(以及任意只要在你这个产品上不会重复的标识,如企业专属个人邮箱)。不能用个人信息作为机构用户标识,因为个人信息属于个人,用户标识需要做到机构级别的隔离

回答完这三个问题,可以看到该账号体系本质上是面向机构实体的。

在这种模式下,假设有一个记者叫小明,小明既属于新华社北京分部有属于新华社浙江分部。那么小明应该在这两个机构中都有一个账号,几个例子:

  • 新华社北京分部的账号为:小明@新华社北京分部
  • 新华社浙江分部的账号为:小明@新华社浙江分部

这两个账号互不相干,账号数据也没有打通。这种模式的典型代表就是阿里云企业账号体系,阿里云企业账号登录名一般为:姓名@公司简称。不同公司的账号后缀是不一样的,数据也是没有打通的。

当然阿里云也支持个人账号,个人账号登录时可以使用个人邮箱和个人手机号。上面提到:纯2b的账号体系是不能用个人信息作为登录方式,否则阿里云不知道你到底登录的是哪个账号。 难道阿里云用了两套数据库表:一套用于企业账号,一套用于个人账号? 我不知道阿里云底层是怎样设计的,但我可以提出我的猜想:数据库肯定只有一套表,个人账号只是企业账号的一种特例:这个企业中只有一个人。企业信息表中有一个字段用来标识这家企业是正常的企业(多个人)还是特例的企业(一个人)。

那为什么特例企业中可以使用个人邮箱和手机号进行登录? 因为你在阿里云的个人账号只有一个,也就是说这样的特例企业只有一个,阿里云可以通过你的个人邮箱和手机号唯一查询到这家企业。

结论 面向2b的账号体现的本质是面向机构实体。先有机构再有机构用户,机构用户不能脱离于机构而存在。机构管理员拥有对机构管理员的生杀大权

上面聊了面向2b的账号模式,下面聊一下面向2c的账号模式。


面向2c的账号模式

面向2b的账号体系有一个痛点:同一个人(注意不是账号)不能在登录态中不能进切换企业。如小明登录新华社北京分社的账号后,不能直接切换登录到新华社浙江分社,必须先退出北京分社的账号后再登录浙江分社的账号。这时候小明可能会有疑问:都是我的账号,为什么不允许让我直接切换机构,还要重新登录一次,这不是纯属增添障碍吗 有这样的想法很正常,因为在现实社会中我们习惯从自身出发去思考问题。比如我在很多银行都有银行卡:建设银行、工商银行、招商银行等,虽然分布在不同的银行,但是这些银行卡都是属于我个人的。需要注意的是,在面向2b的账号体系中,你的账号并不属于你而是属于机构。你的账号是根据机构进行隔离的,所以在登录态不能切换机构。

如何你用过钉钉,你可能会问了:为什么钉钉可以在登录态中进行企业切换?难道钉钉的账号体系不是面向2b的吗? 当然我也不是钉钉员工,我也不清楚钉钉的账号体系是怎样的,但我提出我的猜想:钉钉的账号体系本质上是面向2c的账号体系。这时候你肯定想反驳:钉钉是面向企业的,它的账号体系怎么可能是面向2c的?好的,我们来回想一下,钉钉账号是谁创建的?是企业管理员吗?不,是你。是你通过个人邮箱&手机号创建的。当你创建好钉钉账号时,并没有加入任何企业,是企业管理员把你拉到企业中去的。你的钉钉账号是属于你个人的,你的账号独立于企业:既可以可以被拉到多个企业中,也可以不加入任何企业,有没有企业对你来说没有任何影响。面向2c的账号不依赖于企业,可以独立存在。 现在来解释:为什么钉钉可以在登录态切换企业?因为你登录的账号是属于你的,就算你切换企业我也知道这个账号是属于你,只不过是切换了一个企业标识而已。放在QQ的场景下,你还是你,只不过是切换了一个群,继续聊天而已。

结论 面向2c的账号体现的本质是面向个人实体。个人账号可以独立存在。个人拥有对账号的修改权限。


两种模式的比较

  1. 2b账号:面向机构实体;2c账号:面向个人实体;
  2. 2b账号:账号属于企业。对企业管理员友好,可以新开、停用企业账号;2c账号:账号属于个人。对个人友好,企业管理员不能修改个人核心信息(如登录方式),只有个人才能修改;
  3. 2b账号:企业可以方便批量新建账号。这一点在对接外部企业账号时感受非常明显;2c账号:企业只能一个一个的别人进来,不能新建;
  4. 2b账号:登录态无法在企业间进行切换;2c账号:登录态可以随意在企业间进行切换;

© 著作权归作者所有

那只是一股逆流
粉丝 10
博文 31
码字总数 34072
作品 0
南岸
后端工程师
私信 提问
加载中

评论(8)

哈库纳
哈库纳
“都是我的账号,为什么不允许让我直接切换机构,还要重新登录一次,这不是纯属增添障碍吗”

这个问题实际上是不成立的,这个是一个需求问题。并未账号体系本身问题。

2B的账号和2C的账号没什么太大的特殊区别,最大的特点就是 2B 账号体系通常会跟随一个授权体系。 2C的就简单的多了,只要具有某个身份就有某类权限。
那只是一股逆流
那只是一股逆流 博主
"最大的特点就是 2B 账号体系通常会跟随一个授权体系。" ------- 这点不是太明白
Manfred.Yan
Manfred.Yan
思想被面向对象的关系模型给绑死了,无论2B还是2C都是用户对资源的访问权限问题,并不矛盾。
那只是一股逆流
那只是一股逆流 博主
是的,本质上是资源的归属问题。
isscy
isscy
只是不同的业务场景下的设计不同而已, 有点强化归类
那只是一股逆流
那只是一股逆流 博主
文章就是在讨论面向2b、2c的业务场景,当然有些观点也不完全对
chenghf
chenghf
阐述很清晰,总结很准确。
那只是一股逆流
那只是一股逆流 博主
谢谢鼓励~
互联网2B、2C不一样:产业互联网究竟需要什么竞争力? - 知乎

腾讯股价持续低位徘徊,港交所最耀眼的科技之星,似乎今年并不受资本市场的待见。过去两个月,一向低调,与公众刻意保持距离的腾讯高管们,也在腾讯架构调整一周年纪念的节点前后,纷纷与媒体...

谢璞笔记
10/24
0
0
红杉中国10年投资谁能成为企业级的BAT

  【IT168信息化】9月,对传奇VC机构红杉资本来说有一个大日子,其中国分支红杉中国将迎来10周岁生日。秉承“全球视野和全球资源、本土运营和本土决策”,10年间红杉中国在中国留下了一长串...

it168网站
2015/09/07
0
0
应用平台命名

虽然流量积分平台盈利重心是 2B 流量营销产品业务,但是 2C 的客户端产品仍然是必不可少的,客户端产品的命名希望大家集思广益 中国联通2C产品:流量银行 中国移动2C产品:爱流量 中国电信2...

汀小洛
2015/10/23
2
8
10亿元押注物联网加码To B业务,联想宣称已走出低谷

关注网易智能,聚焦AI大事件,读懂下一个大时代! 文/崔玉贤 走出低谷的联想,刚好迎来一年一次的TechWorld。杨元庆看上去一身轻松,在主题演讲环节还“加戏”,鼓励与NetAPP成立的合资公司冲...

网易智能
2018/09/27
0
0
2B创业的中国式难题-【中国IC微专栏】2016.4.5

前一段时间看到有人转发了下面一段号称中欧商学院廖教授的话:中国受过极良好教育的年轻人们,聚集在被称为“创业导师”的中年男人们周围,一起彻夜不休地燃烧生命,只为了在一轮又一轮如何送...

张振伦
2016/04/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

交换两数(函数)

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> void Exchange(int* x, int* y){ int tmp = 0; tmp = *x; *x = *y; *y = tmp; } int main(){ int a; int b; scanf......

Lxxxxx256
55分钟前
3
0
给 K8s API “做减法”:阿里巴巴云原生应用管理的挑战和实践

作者 | 孙健波(天元) 阿里巴巴技术专家 本文整理自 11 月 21 日社群分享,每月 2 场高质量分享,点击加入社群。 早在 2011 年,阿里巴巴内部便开始了应用容器化,当时最开始是基于 LXC 技术...

阿里巴巴云原生
今天
6
0
数据平面

3.1数据平面的任务 解析数据包头 转发数据包到某些端口 通过查询由控制平面所生成的转发表 传统网络数据平面 数据包--输入端口---拆封和解析,转发策略匹配,转发调度---输出端口(协议相关,...

Firefly-
昨天
6
0
如何高效的阅读uni-app框架?(建议收藏)

作者 | Jeskson 来源 | 达达前端小酒馆 uni-app的框架,配置:page.json,manifest.json,package.json,vue.config.js。脚本,应用程序,main.js。日志打印,定时器,生命周期,页面,页面通...

达达前端小酒馆
昨天
8
0
实现原理专题--存储器的实现(三)

计算机实现原理专题--存储器的实现(二)中描述了一种电平触发器,但是某些应用需要在保持位从0到1变化的过程中对数据端进行保存。这种触发器叫边沿触发器。 一开始Q为0,时钟信号为0。当数据...

FAT_mt
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部