V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lxiian
V2EX  ›  程序员

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

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

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

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

    怎么解决我不晓得,如果是我:
    mysql 存储关联信息
    章节内容:
    1. 测试 mongodb 和 txt 那个占用小。
    2. 章节内容压缩存储,读取再解压。
    lxiian
        16
    lxiian  
    OP
       4 天前 via iPhone
    谢谢上面各位大佬的回复,非常感谢🙏🫡 评论多,我就不一一去感谢了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1150 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 17:08 · PVG 01:08 · LAX 09:08 · JFK 12:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.