不是程序员,只是自己写着玩,迫于条件,只能在手机上写,用 termux 。
termux 不能安装 mysql,不能安装 mongodb,但是可以装 sqlite 和 redis,所以决定使用这两个其中的一个作为小说网站的数据库,但是对数据库不了解,不知道用哪个好。
小说每本字数在 10 万~ 30 万之间,总数大概一两百本,所以数据量不大,至多也就几百兆。
另外也想知道小说网站的数据库表一般是怎么设计的,求大佬指点迷津。
不是程序员,只是自己写着玩,迫于条件,只能在手机上写,用 termux 。
termux 不能安装 mysql,不能安装 mongodb,但是可以装 sqlite 和 redis,所以决定使用这两个其中的一个作为小说网站的数据库,但是对数据库不了解,不知道用哪个好。
小说每本字数在 10 万~ 30 万之间,总数大概一两百本,所以数据量不大,至多也就几百兆。
另外也想知道小说网站的数据库表一般是怎么设计的,求大佬指点迷津。
|
catNov 9, 2020 via iPhone
1
小说内容不存数据库… 有的数据库只存个章节索引,有的甚至全站静态化
|
|
2
不要存,存了就律师函警告。只能做搜索换源
|
|
manamiNov 9, 2020 via Android
3
看上不上线吧。本地自己玩的话不需要用户鉴权和认证,直接一张小说表增删改查算了,要加标签什么的花还需要标签表,就看你怎么玩了
|
|
wy7305eNov 9, 2020 via Android
4
javascript 直接读取 txt 文件。
|
|
CbdyNov 9, 2020 via Android
5
我记得 termux 好像可以用 mariadb
|
|
t6attackNov 9, 2020
7
最简单的方法就是直接拿 txt 做数据库。每本小说一个 txt 。然后做一个索引,索引可以存进数据库,也可以自己把它序列化后存成文本格式。
对每本 txt 执行一次“生成索引”的操作,记录每个章节的文件指针 起始位置 和 长度。用户访问某本小说某个章节时,根据索引位置读取内容就行了。 |
|
8
sqlite 很强悍的,有家网站的 sqlite 数据库文件上 T,都跑得好好的。小说存 sqlite 里当然可以,但最好根据需要,sqlite 数据库只用来存储相关的元数据,如分类、日期、作者、目录、章节所在文件路径等等。
|
|
nguoidiquaNov 9, 2020 via Android
9
termux 可以 proot 一个完整 Linux,能装其他数据库,桌面都可以装。
可以看看 Anlinux 这个应用。 不过这个事最好别做,真要做大文本也不必存在数据库,直接 txt 或者 html 存就行了。 |
|
misaka19000Nov 9, 2020
11
@nonduality #8 sqlite 能解决并发的问题吗?
|
|
cheng6563Nov 9, 2020
12
直接存硬盘文件吧,然后硬盘开个透明压缩
|
|
nondualityNov 9, 2020
13
@misaka19000 sqlite 并发性完全没问题
|
|
misaka19000Nov 9, 2020
14
@nonduality #13 我直接使用 Python 自带的 sqlite 库来操作 sqlite 是否会存在一些弊端?
|
|
mxT52CRuqR6o5Nov 9, 2020 via Android
15
Termux 下能用 redis 和 mariadb,比 sqlite 正经点
|
|
nondualityNov 9, 2020
16
@misaka19000 完全没有问题,那个 client 是很可靠的。总之,sqlite 是被高度低估了,放心使用 sqlite 就是,等到你真觉得太慢了,也许都需要下一步的代码重构或融资了。
|
|
leoskeyNov 9, 2020
17
放心食用 sqlite
|
|
18
sqlite 性能完全不是问题,有各种 benchmark 比如这个: https://github.com/stcarrez/sql-benchmark
数据不上 T 、功能够用的时候 sqlite 很合适的。 |
|
wangxiaoaerNov 9, 2020
19
sqlite 能否通过 nas 的方式同时给多台服务器提供服务?
|