多人协作

51 阅读1分钟

有时候可能会有多人协作的需求,多人协作有很多实现方式

  1. 可以多人改,但是同时只有一人能改。这种不算纯粹的多人协作,偏权限控制。

  2. 飞书文档类的多人协作,大家都在同一个数据载体上修改。

  3. git式的多人协作,没人都有一个分支,在自己的分支上修改,需要rebase和commit。

选择哪种要看业务的发展阶段和具体场景。

如果多人协作需求没有那么强烈,只是偶尔需要别人来修改一下,可以使用方案一。如果是文档类的多人协作,则可以使用方案二。方案三则是最纯粹的多人协作方案,系统底层复杂度、场景复杂度都会提升很多。

对于方案三,需要考虑以下几点问题

在架构上:

  1. 是否会频繁的增加字段:如果频繁增加字段,需要修改表的数量至少扩展一倍

  2. 是否有全局字段:全局字段是一改全改,没有个人分支的概念

  3. 数据统计影响:是否会影响到现有的数据统计,毕竟增加了一个维度

  4. 事务处理:所有操作几乎都需要考虑到个人分支和主分支,需要事务操作

  5. 替换处理:每一个操作要区分是个人分支还是主分支

在场景上:

  1. 对于未开启多人协作的,无需感知到多人协作的功能,即无需感知到rebase、commit等

  2. 在排序上,显示的是个人版本还是master版本