在线文档,博客 储存除了存数据库还能怎么存

2024-05-22 14:27:08 +08:00
 nicht

类似语雀这种怎么组织储存数据的

1865 次点击
所在节点    程序员
12 条回复
dode
2024-05-22 15:29:38 +08:00
对象存储
opengps
2024-05-22 15:30:36 +08:00
这种完全可以存储静态文件,从而轻松使用对象存储来加载
wangbin11
2024-05-22 15:33:29 +08:00
图片都是对象存储,自建推荐 minio ,其他推荐 s3 ,国内推荐阿里云
DsuineGP
2024-05-22 15:39:31 +08:00
文档本身的 Blob 数据存对象存储. 数据库中只存索引
KongLiu
2024-05-22 15:51:31 +08:00
不存数据库,就存文件呗,本地文件或者上面说的对象存储
whistleryz
2024-05-22 16:02:15 +08:00
在线文档的存储复杂度要比博客高很多,要涉及 OT 协同,历史版本等。简单来说,应该是整个文档是以 OT 指令,打个快照作为文件存到 S3 ,同时一些增量的数据存在数据库之类的;

博客就简单了,不需要协同,最简单方式的就是作为 mysql 的一个字段存进去就可以了。
Felldeadbird
2024-05-22 16:13:10 +08:00
存数据库是为了做归类信息处理。

也可以直接文本格式。
nicht
2024-05-22 16:15:06 +08:00
@whistleryz 博客这种个人编辑保存的可以直接 oss 存起来 但是 在线问答 协同编辑 以及 同步 很难像博客那样 不可能每次编辑完 都替换 or 存储一份吧
nicht
2024-05-22 16:16:04 +08:00
@nicht 问答 -> 文档
whistleryz
2024-05-22 16:27:31 +08:00
@nicht 是的,不是替换,增量更新存的是指令;举个例子,用户编辑文档时删除了一个字,这次编辑操作抽象为指令:

形如:{ action: 'delete', index: 10, length: 1 }

协同给协作者+入库就可以了
nicht
2024-05-22 16:39:18 +08:00
@whistleryz 学到了 谢谢解答
yolee599
2024-05-22 16:58:50 +08:00
参考 git diff 看看它怎么实现的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1042940

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX