有时候可能会有多人协作的需求,多人协作有很多实现方式
- 可以多人改,但是同时只有一人能改。这种不算纯粹的多人协作,偏权限控制。
- 飞书文档类的多人协作,大家都在同一个数据载体上修改。
- git式的多人协作,没人都有一个分支,在自己的分支上修改,需要rebase和commit。
选择哪种要看业务的发展阶段和具体场景。
如果多人协作需求没有那么强烈,只是偶尔需要别人来修改一下,可以使用方案一。如果是文档类的多人协作,则可以使用方案二。方案三则是最纯粹的多人协作方案,系统底层复杂度、场景复杂度都会提升很多。
对于方案三,需要考虑以下几点问题
在架构上:
- 是否会频繁的增加字段:如果频繁增加字段,需要修改表的数量至少扩展一倍
- 是否有全局字段:全局字段是一改全改,没有个人分支的概念
- 数据统计影响:是否会影响到现有的数据统计,毕竟增加了一个维度
- 事务处理:所有操作几乎都需要考虑到个人分支和主分支,需要事务操作
- 替换处理:每一个操作要区分是个人分支还是主分支
在场景上:
- 对于未开启多人协作的,无需感知到多人协作的功能,即无需感知到rebase、commit等
- 在排序上,显示的是个人版本还是master版本