找回密码
 立即注册
搜索
查看: 2373|回复: 21

[软件] 本地客户端应用什么情况下应该使用数据库?

[复制链接]
     
发表于 2021-2-15 13:24 | 显示全部楼层 |阅读模式
本帖最后由 冰箱研会长e-3M 于 2021-2-16 19:24 编辑

RT, 最近尝试在用UWP写一个开源日记应用, 页面控件, 逻辑基本写完了,
还差本地数据的储存方式.

说是数据, 其实就是一系列时间戳标记的记录.
我第一时间想到的就是写入到Json或者xml里,
但对待这种数据, 用JSON\XML和使用sqlite之类的数据库相比, 哪种更 "合理" 呢?

可能是个蠢问题, 但一时间还是想不出个所以然来, 遂发帖问问大家

------------

开始用sqlite了 > <

回复

使用道具 举报

     
发表于 2021-2-15 13:50 来自手机 | 显示全部楼层
本帖最后由 DTCPSS 于 2021-2-15 13:58 编辑

Json要增删改查一般要把整个文本文件序列化和反序列化吧,数据多了应该会慢
数据量少应该差别不大


- 发自忧郁深沉的 Stage1st UWP 非官方客户端
回复

使用道具 举报

发表于 2021-2-15 14:09 | 显示全部楼层
日记能写几篇,一辈子最多也就三万多天。


想用什么就用什么吧
回复

使用道具 举报

头像被屏蔽
     
发表于 2021-2-15 14:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
 楼主| 发表于 2021-2-15 14:20 | 显示全部楼层
Jet.Black 发表于 2021-2-15 14:09
日记能写几篇,一辈子最多也就三万多天。

是随手记那种模式的日记 一条记录是2021年2月15日14点20分 + 全局不重复ID 这种标记
回复

使用道具 举报

头像被屏蔽
     
发表于 2021-2-15 14:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2021-2-15 14:31 | 显示全部楼层
用比较流行的数据库有一个好处是死机/断电/强行关闭程序的情况下数据不容易丢。
回复

使用道具 举报

     
发表于 2021-2-15 17:48 来自手机 | 显示全部楼层
硬盘本身不就是个数据库么,文件命名归类弄弄好应用启动后直接一把梭

— from OPPO PEGM00, Android 11 of S1 Next Goose v2.4.4.1

评分

参与人数 1战斗力 +1 收起 理由
冰箱研会长e-3M + 1 欢乐多

查看全部评分

回复

使用道具 举报

发表于 2021-2-15 17:53 来自手机 | 显示全部楼层
数据库。方便以后拓展多用户和数据加密功能,避免为这些造轮子
回复

使用道具 举报

     
发表于 2021-2-15 18:26 来自手机 | 显示全部楼层
理论上应该用数据库,而不是直接操作文件系统

—— 来自 Xiaomi Redmi K30 5G, Android 11上的 S1Next-鹅版 v2.4.4.1
回复

使用道具 举报

     
发表于 2021-2-15 20:26 | 显示全部楼层
推荐sqlite一把梭
用json之类的数据结构+持久化,容易在异常运行场景出幺蛾子;
直接文本文件存储,需要自己DIY很多方法;
用标准数据库,会把你常用的方法+一些想不到的存储异常考虑到,还是实用很多的;
回复

使用道具 举报

     
发表于 2021-2-15 22:15 | 显示全部楼层
.net的话可以试试LiteDB 简单好上手 支持linq
回复

使用道具 举报

头像被屏蔽
     
发表于 2021-2-15 23:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2021-2-16 09:02 | 显示全部楼层
sqlite 正解,一个文件可比一堆文件方便多了
回复

使用道具 举报

头像被屏蔽
     
发表于 2021-2-16 18:44 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
     
发表于 2021-2-16 19:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2021-2-16 19:25 | 显示全部楼层
sqlite啊,不要选其他的,将来不管是统计还是高级查询用SQL的效率都比重新实现强多了,字段扩展也方便的多,还有DBEAVER这种免费神器
回复

使用道具 举报

发表于 2021-2-16 19:31 | 显示全部楼层
refo2613 发表于 2021-2-16 19:19
请问一下:

为啥安装程序包,例如MSI格式的,都还是喜欢直接丢个.LOG的纯文本文件? ...

log这种只增在最末还不会删的东西,文本文件最适合。
回复

使用道具 举报

     
发表于 2021-2-16 20:00 来自手机 | 显示全部楼层
数据量够少用json也不是不行,每次读写都在备份文件上操作,完成操作后对数据做验校再用备份文件替换原文件。直接操作文件真心容易出问题。(想想看为什么office打开文件会产生一个隐藏的备份文件)
回复

使用道具 举报

     
发表于 2021-2-16 22:37 | 显示全部楼层
lvcha 发表于 2021-2-16 18:44
看啥语言了。java用sqllite。python我用的是那个自带的本地序列化的map叫啥我忘了。 ...

pickle?
回复

使用道具 举报

头像被屏蔽
     
发表于 2021-2-16 22:48 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2021-2-18 21:04 来自手机 | 显示全部楼层
lvcha 发表于 2021-2-16 22:48
是shelve。老不写虽然天天用但还是记不住呀。 挺好使的,完全可以当个可随时序列化反序列化的字典。我存 ...

感恩
看了下shelve是pickle封装了一层
我是自己用pickle实现了一个持久化 看来又造了一个轮子

—— 来自 Xiaomi MI 9 SE, Android 9上的 S1Next-鹅版 v2.1.0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-24 17:19 , Processed in 0.112213 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表