本地客户端应用什么情况下应该使用数据库?
本帖最后由 冰箱研会长e-3M 于 2021-2-16 19:24 编辑RT, 最近尝试在用UWP写一个开源日记应用, 页面控件, 逻辑基本写完了,
还差本地数据的储存方式.
说是数据, 其实就是一系列时间戳标记的记录.
我第一时间想到的就是写入到Json或者xml里,
但对待这种数据, 用JSON\XML和使用sqlite之类的数据库相比, 哪种更 "合理" 呢?
可能是个蠢问题, 但一时间还是想不出个所以然来, 遂发帖问问大家
------------
开始用sqlite了 > <
本帖最后由 DTCPSS 于 2021-2-15 13:58 编辑
Json要增删改查一般要把整个文本文件序列化和反序列化吧,数据多了应该会慢
数据量少应该差别不大
- 发自忧郁深沉的 Stage1st UWP 非官方客户端 日记能写几篇,一辈子最多也就三万多天。
想用什么就用什么吧
c#?试试messagepack csharp和mastermemory,作者是cygames的大牛,不用学任何数据库知识,自动生成增删改查代码,直接上手 Jet.Black 发表于 2021-2-15 14:09
日记能写几篇,一辈子最多也就三万多天。
是随手记那种模式的日记 一条记录是2021年2月15日14点20分 + 全局不重复ID 这种标记 用比较流行的数据库有一个好处是死机/断电/强行关闭程序的情况下数据不容易丢。 硬盘本身不就是个数据库么,文件命名归类弄弄好应用启动后直接一把梭
— from OPPO PEGM00, Android 11 of S1 Next Goose v2.4.4.1 数据库。方便以后拓展多用户和数据加密功能,避免为这些造轮子 理论上应该用数据库,而不是直接操作文件系统
—— 来自 Xiaomi Redmi K30 5G, Android 11上的 S1Next-鹅版 v2.4.4.1 推荐sqlite一把梭
用json之类的数据结构+持久化,容易在异常运行场景出幺蛾子;
直接文本文件存储,需要自己DIY很多方法;
用标准数据库,会把你常用的方法+一些想不到的存储异常考虑到,还是实用很多的; .net的话可以试试LiteDB 简单好上手 支持linq sqlite 正解,一个文件可比一堆文件方便多了 sqlite啊,不要选其他的,将来不管是统计还是高级查询用SQL的效率都比重新实现强多了,字段扩展也方便的多,还有DBEAVER这种免费神器 refo2613 发表于 2021-2-16 19:19
请问一下:
为啥安装程序包,例如MSI格式的,都还是喜欢直接丢个.LOG的纯文本文件? ...
log这种只增在最末还不会删的东西,文本文件最适合。 数据量够少用json也不是不行,每次读写都在备份文件上操作,完成操作后对数据做验校再用备份文件替换原文件。直接操作文件真心容易出问题。(想想看为什么office打开文件会产生一个隐藏的备份文件) lvcha 发表于 2021-2-16 18:44
看啥语言了。java用sqllite。python我用的是那个自带的本地序列化的map叫啥我忘了。 ...
pickle? lvcha 发表于 2021-2-16 22:48
是shelve。老不写虽然天天用但还是记不住呀。 挺好使的,完全可以当个可随时序列化反序列化的字典。我存 ...
感恩
看了下shelve是pickle封装了一层
我是自己用pickle实现了一个持久化 看来又造了一个轮子
—— 来自 Xiaomi MI 9 SE, Android 9上的 S1Next-鹅版 v2.1.0
页:
[1]