关于react-native选择数据库的问题。如果只是保存用户登录的账号和密码用AsyncStorage这没什么问题,但如果有大的公共的资源还用AsyncStorage合适吗?可以选择使用mysql数据库吗?



  • react native本身是客户端,其角色跟网页没有什么本质区别
    可能为了性能或者体验需要本地存放一些数据,那就是asyncstorage或者网页的localstorage
    什么场合需要mysql之类的数据库?并不是“大的资源”,谁把数据库当移动硬盘来用吗?数据库要处理的,是“复杂的数据间关系”,但这是服务器要干的事情啊
    虽然react native确实也可以用一些数据库(毕竟可以桥接一切原生组件),比如sqlite或者realm,但我也实在想不到什么场合需要用到。



  • react native也不存在什么“私有”“公共”的概念啊?这是手机应用啊,谁的手机是“公用”的吗?

    你应该分清楚基本的“服务端”和“客户端”的概念。无论什么客户端,它都可以类比一台电视,它自己不能产生任何电视节目,它只能从电视网络中获取数据。



  • AsyncStorage是一个简单的、异步的、持久化的 Key-Value 存储系统,它对于 App 来说是全局性的。可用来代替 LocalStorage。

    我们推荐您在 AsyncStorage 的基础上做一层抽象封装,而不是直接使用 AsyncStorage。

    在 iOS 上,AsyncStorage在原生端的实现是把较小值存放在序列化的字典中,而把较大值写入单独的文件。在 Android 上,AsyncStorage会尝试使用RocksDB,或退而选择 SQLite。

    =======
    这是AsyncStorage的官方文档



  • @晴明 可能我说的不太恰当,我说的公共和私有指的是数据,我自己的账号密码数据保存在自己的手机中问题不大,但是一些资讯类的数据是任何用户都可以看的(公共数据),这些数据存在AsyncStorage也合适吗?(我理解AsyncStorage就是将数据存放到用户手机上的?如果是这样似乎有点不合理)。如果像你比喻的那样,去电视网络中获取数据,那这个数据源应该也是一个数据库,他是mysql还是AsyncStorage呢?。另外我将数据存到AsyncStorage它会生成一个文件来存放数据吗?还只是存在于内存中?



  • @ACDC5 电视网络这个数据源跟你自己的电视,你的手机,你的rn的选择没有任何关系了啊,那是服务器端的事情啊



  • @晴明 其实我最根本的疑问是,我在react native该用什么数据库才合适(我业务上的数据多种多样...图片视频文字文件...等等),因为我之前只用过mysql和oracle。



  • @晴明 如果服务端的事,数据库我可以任选吗?



  • @ACDC5 客户端和服务器端通过接口通信,彼此并不关心彼此具体的实现
    电视并不关心数据来自天线,ip网络,游戏机还是手机
    电视台也并不关心接受者是一台电视还是一台微波炉



  • @ACDC5 服务器端的数据库可以任选吗?如果这是个问题的话,那么你岂不是更应该问服务器用什么配置,用几核心的cpu,多少内存,选择什么系统,什么版本,用什么编程语言,放在什么位置?



  • @晴明 明白了@_@ 谢谢


Log in to reply