• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lxiian
V2EX  ›  程序员

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

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

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

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

    怎么解决我不晓得,如果是我:
    mysql 存储关联信息
    章节内容:
    1. 测试 mongodb 和 txt 那个占用小。
    2. 章节内容压缩存储,读取再解压。
    lxiian
        16
    lxiian  
    OP
       Jan 23, 2025 via iPhone
    谢谢上面各位大佬的回复,非常感谢🙏🫡 评论多,我就不一一去感谢了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2714 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 15:27 · PVG 23:27 · LAX 08:27 · JFK 11:27
    ♥ Do have faith in what you're doing.