V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
v2defy
V2EX  ›  问与答

想写个小说网站,数据库用 sqlite 可以吗

  •  
  •   v2defy · 2020-11-09 07:48:36 +08:00 · 2887 次点击
    这是一个创建于 1476 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不是程序员,只是自己写着玩,迫于条件,只能在手机上写,用 termux 。

    termux 不能安装 mysql,不能安装 mongodb,但是可以装 sqlite 和 redis,所以决定使用这两个其中的一个作为小说网站的数据库,但是对数据库不了解,不知道用哪个好。

    小说每本字数在 10 万~ 30 万之间,总数大概一两百本,所以数据量不大,至多也就几百兆。

    另外也想知道小说网站的数据库表一般是怎么设计的,求大佬指点迷津。

    19 条回复    2020-11-09 13:33:01 +08:00
    cat
        1
    cat  
       2020-11-09 07:56:16 +08:00 via iPhone
    小说内容不存数据库… 有的数据库只存个章节索引,有的甚至全站静态化
    hz570815725
        2
    hz570815725  
       2020-11-09 07:57:59 +08:00   ❤️ 1
    不要存,存了就律师函警告。只能做搜索换源
    manami
        3
    manami  
       2020-11-09 07:59:22 +08:00 via Android
    看上不上线吧。本地自己玩的话不需要用户鉴权和认证,直接一张小说表增删改查算了,要加标签什么的花还需要标签表,就看你怎么玩了
    wy7305e
        4
    wy7305e  
       2020-11-09 08:12:18 +08:00 via Android
    javascript 直接读取 txt 文件。
    Cbdy
        5
    Cbdy  
       2020-11-09 08:21:13 +08:00 via Android
    我记得 termux 好像可以用 mariadb
    tctc4869
        6
    tctc4869  
       2020-11-09 08:29:50 +08:00
    @cat 文章之类的数据,用 html 文件存储是最好的么?然后用模板引擎用绝对路径读取去渲染么?
    t6attack
        7
    t6attack  
       2020-11-09 08:45:41 +08:00
    最简单的方法就是直接拿 txt 做数据库。每本小说一个 txt 。然后做一个索引,索引可以存进数据库,也可以自己把它序列化后存成文本格式。
    对每本 txt 执行一次“生成索引”的操作,记录每个章节的文件指针 起始位置 和 长度。用户访问某本小说某个章节时,根据索引位置读取内容就行了。
    nonduality
        8
    nonduality  
       2020-11-09 09:33:39 +08:00   ❤️ 1
    sqlite 很强悍的,有家网站的 sqlite 数据库文件上 T,都跑得好好的。小说存 sqlite 里当然可以,但最好根据需要,sqlite 数据库只用来存储相关的元数据,如分类、日期、作者、目录、章节所在文件路径等等。
    nguoidiqua
        9
    nguoidiqua  
       2020-11-09 09:35:35 +08:00 via Android
    termux 可以 proot 一个完整 Linux,能装其他数据库,桌面都可以装。

    可以看看 Anlinux 这个应用。

    不过这个事最好别做,真要做大文本也不必存在数据库,直接 txt 或者 html 存就行了。
    lower
        10
    lower  
       2020-11-09 09:39:43 +08:00
    @tctc4869 浏览器下载 html 后,本地直接渲染原始 html
    misaka19000
        11
    misaka19000  
       2020-11-09 09:47:54 +08:00
    @nonduality #8 sqlite 能解决并发的问题吗?
    cheng6563
        12
    cheng6563  
       2020-11-09 11:17:02 +08:00
    直接存硬盘文件吧,然后硬盘开个透明压缩
    nonduality
        13
    nonduality  
       2020-11-09 12:04:08 +08:00
    @misaka19000 sqlite 并发性完全没问题
    misaka19000
        14
    misaka19000  
       2020-11-09 12:15:27 +08:00
    @nonduality #13 我直接使用 Python 自带的 sqlite 库来操作 sqlite 是否会存在一些弊端?
    mxT52CRuqR6o5
        15
    mxT52CRuqR6o5  
       2020-11-09 12:20:28 +08:00 via Android
    Termux 下能用 redis 和 mariadb,比 sqlite 正经点
    nonduality
        16
    nonduality  
       2020-11-09 12:21:10 +08:00
    @misaka19000 完全没有问题,那个 client 是很可靠的。总之,sqlite 是被高度低估了,放心使用 sqlite 就是,等到你真觉得太慢了,也许都需要下一步的代码重构或融资了。
    leoskey
        17
    leoskey  
       2020-11-09 13:12:12 +08:00
    放心食用 sqlite
    icyalala
        18
    icyalala  
       2020-11-09 13:21:31 +08:00   ❤️ 1
    sqlite 性能完全不是问题,有各种 benchmark 比如这个: https://github.com/stcarrez/sql-benchmark
    数据不上 T 、功能够用的时候 sqlite 很合适的。
    wangxiaoaer
        19
    wangxiaoaer  
       2020-11-09 13:33:01 +08:00
    sqlite 能否通过 nas 的方式同时给多台服务器提供服务?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   907 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:17 · PVG 04:17 · LAX 12:17 · JFK 15:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.