请教一下各位大佬关于小说平台后端方案问题。

222 天前
 lxiian
请问类似番茄小说这种平台,小说章节内容是以何种方式存储的?是 nosql 数据库呢 还是直接用文件形式存储到对象存储里呢?文件的话 是每更新一章就在源文件追加还是生成新文件呢。
有晓得的大佬吗,谢谢🫡
2665 次点击
所在节点    程序员
16 条回复
change1689
222 天前
这个看你有没有其他功能 比如书签 收藏 段落评论 词典 划线等这些功能,如果有的话那么用文档存储这些功能比较难实现吧,所以感觉还是 nosql 灵活一些
kk2syc
222 天前
还是存 oracle ,没有用上 nosql 。为了方便随时根据<指示>重审内容以及违禁词屏蔽(还有反爬前端需要),存文件是不可行的。
cooltechbs
222 天前
应该不能把整本书存成单个文件,但是每个章节一个文件是可以的,之后需要修改内容的话,也以章节为单位更新。如果用 NoSQL ,那就再拆细一点,比如每个自然段一条记录。

后端无论怎么存,在初次分发给客户端的时候,都把全本打包成 zip 让客户端去下载。
BadReese
222 天前
直接 mysql 单独开一个表用来存正文+id
xuanbg
222 天前
又不做全文检索,mysql 直接 text 字段存都没问题
ryalu
222 天前
之前有过类似的讨论可以看看 https://www.v2ex.com/t/1061787#reply23
nanrenlei
222 天前
@xuanbg 你确定 text 能存下一篇小说?
Pdk5a8759cbeD6CH
222 天前
@nanrenlei 哪有存一篇小说的,肯定是存一个章节啊,小说 id ,章节 id ,然后章节内容
815979670
222 天前
可以参考一下这一篇 https://www.v2ex.com/t/1076073
我们主流的观点认为 SQLite 很合适
awanganddong
222 天前
小说这种,txt 文件就可以了。毕竟发布之后是很少修改的。然后把对应的文件名存数据库就可以。

小说 id/章节 id
zxcslove
222 天前
这东西重点应该在于互动和营销
mightybruce
222 天前
番茄小说 这种不好说,如果你重新自己开发一个类似的,并没有太多用户数量,可以考虑 postgresql, (配合一些插件比如 pgvector) 很不错。
skywalkerfc
222 天前
之前在一家番茄竞品的小说公司,用的 MongoDB
xuanbg
222 天前
@nanrenlei 一条记录肯定只存一章啊。网文一章一般 1500-5000 字。text 不行还有 longtext 呢,就算不用 longtext ,限制每章字数不得超过 1 万 6 又怎么了,假设你用的 utf-8mb4 编码的话。
lyxxxh2
222 天前
21 年做过。
基于:https://github.com/copyrenzhe/novel
用的 mysql,没感觉到性能问题。
最大问题是存储不够用,好像几十万本就 40g 了。
对象存储不现实,比数据盘还贵。
如何解决章节内容存储才是个问题,轻轻松松 200g+。

怎么解决我不晓得,如果是我:
mysql 存储关联信息
章节内容:
1. 测试 mongodb 和 txt 那个占用小。
2. 章节内容压缩存储,读取再解压。
lxiian
222 天前
谢谢上面各位大佬的回复,非常感谢🙏🫡 评论多,我就不一一去感谢了

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

https://www.v2ex.com/t/1107212

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

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

© 2021 V2EX