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

2020-11-09 07:48:36 +08:00
 v2defy

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

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

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

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

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

可以看看 Anlinux 这个应用。

不过这个事最好别做,真要做大文本也不必存在数据库,直接 txt 或者 html 存就行了。
lower
2020-11-09 09:39:43 +08:00
@tctc4869 浏览器下载 html 后,本地直接渲染原始 html
misaka19000
2020-11-09 09:47:54 +08:00
@nonduality #8 sqlite 能解决并发的问题吗?
cheng6563
2020-11-09 11:17:02 +08:00
直接存硬盘文件吧,然后硬盘开个透明压缩
nonduality
2020-11-09 12:04:08 +08:00
@misaka19000 sqlite 并发性完全没问题
misaka19000
2020-11-09 12:15:27 +08:00
@nonduality #13 我直接使用 Python 自带的 sqlite 库来操作 sqlite 是否会存在一些弊端?
mxT52CRuqR6o5
2020-11-09 12:20:28 +08:00
Termux 下能用 redis 和 mariadb,比 sqlite 正经点
nonduality
2020-11-09 12:21:10 +08:00
@misaka19000 完全没有问题,那个 client 是很可靠的。总之,sqlite 是被高度低估了,放心使用 sqlite 就是,等到你真觉得太慢了,也许都需要下一步的代码重构或融资了。
leoskey
2020-11-09 13:12:12 +08:00
放心食用 sqlite
icyalala
2020-11-09 13:21:31 +08:00
sqlite 性能完全不是问题,有各种 benchmark 比如这个: https://github.com/stcarrez/sql-benchmark
数据不上 T 、功能够用的时候 sqlite 很合适的。
wangxiaoaer
2020-11-09 13:33:01 +08:00
sqlite 能否通过 nas 的方式同时给多台服务器提供服务?

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

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

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

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

© 2021 V2EX