比如一个 sass 平台,有很多企业用户,每个企业都可以创建自己的业务数据。现在想实现,当用户开户的时候按照用户选择的行业,来生成一些行业案例业务数据。
自己简单的想法就是每个行业创建一个模板企业,开户的时候从对应行业的企业中拷贝数据。但是因为业务数据表的主键是 int 自增的 id ,所以在拷贝数据的时候需要处理非常复杂的数据关联逻辑。这样成本就非常高。
请问这种情况是否有低成本的实现思路呢?
1
GeekGao 216 天前
“ 所以在拷贝数据的时候需要处理非常复杂的数据关联逻辑。这样成本就非常高。 ” 思考下因果关系能不能被打破呢?
例如:提前准备好一个 demo 库,只需要连接 demo 库即可查看演示数据、使用 SaaS 系统外部的脚本进行写表等操作 |
2
GooMS 216 天前
这就是最简单的了,我们每个业务都有 db seed 也方便开发和测试快速调试
|
3
IvanLi127 216 天前
看看普通项目如何为数据库 seed 数据吧
|
4
delai 216 天前
你这个说的不就是我们做 DemoWay 的初衷么? :),但凡你软件复杂点,别说涉及多个行业的试用版数据了,单单一个像模像样的试用版本的数据,就是一个很大的投入和调整。
https://demoway.cn 试试 |
8
Orenoid 215 天前
听起来是业务本身带来的复杂度,但信息较少不好轻易下结论,我个人建议既然是业务问题,最好不要尝试在技术方案层面去取巧,复杂度只会转移,不会消失,取巧容易产生技术债,除非这块逻辑你们不需要长期维护。
回到你说的这个具体问题,我觉得可以看下你们系统里目前是否已经有类似于复制、导入数据的逻辑,梳理看下这些逻辑跟基于模板生成样例数据的流程,是否具有共性,能否做一层抽象,从这个角度减少维护成本。仅供参考,抽象如果做得不好同样会带来额外维护成本。 |
9
kltt22 215 天前
感觉可以做个批量导入功能,通过代码处理复杂的业务逻辑。每次开户后,加一个导入动作,或者自动导入。之后的流程操作可以通过“新手引导”的功能,让客户自行操作。
|