类似语雀这种怎么组织储存数据的
1 dode 2024-05-22 15:29:38 +08:00 对象存储 |
![]() | 2 opengps 2024-05-22 15:30:36 +08:00 这种完全可以存储静态文件,从而轻松使用对象存储来加载 |
![]() | 3 wangbin11 2024-05-22 15:33:29 +08:00 图片都是对象存储,自建推荐 minio ,其他推荐 s3 ,国内推荐阿里云 |
4 DsuineGP 2024-05-22 15:39:31 +08:00 文档本身的 Blob 数据存对象存储. 数据库中只存索引 |
5 KongLiu 2024-05-22 15:51:31 +08:00 不存数据库,就存文件呗,本地文件或者上面说的对象存储 |
6 whistleryz 2024-05-22 16:02:15 +08:00 在线文档的存储复杂度要比博客高很多,要涉及 OT 协同,历史版本等。简单来说,应该是整个文档是以 OT 指令,打个快照作为文件存到 S3 ,同时一些增量的数据存在数据库之类的; 博客就简单了,不需要协同,最简单方式的就是作为 mysql 的一个字段存进去就可以了。 |
![]() | 7 Felldeadbird 2024-05-22 16:13:10 +08:00 存数据库是为了做归类信息处理。 也可以直接文本格式。 |
8 nicht OP @whistleryz 博客这种个人编辑保存的可以直接 oss 存起来 但是 在线问答 协同编辑 以及 同步 很难像博客那样 不可能每次编辑完 都替换 or 存储一份吧 |
10 whistleryz 2024-05-22 16:27:31 +08:00 @nicht 是的,不是替换,增量更新存的是指令;举个例子,用户编辑文档时删除了一个字,这次编辑操作抽象为指令: 形如:{ action: 'delete', index: 10, length: 1 } 协同给协作者+入库就可以了 |
11 nicht OP @whistleryz 学到了 谢谢解答 |
![]() | 12 yolee599 2024-05-22 16:58:50 +08:00 参考 git diff 看看它怎么实现的 |