Tag: 数据库

FIREBASE数据库 – 为子节点存储唯一的密钥(Swift / IOS)

我正在尝试存储生成的唯一密钥时调用childByAutoId。 从理论上讲,这将有助于映射对应用程序中稍后需要执行的指定子项的更新或更改。 我对Firebase的分级数据库相当陌生,如果下面描述的方法不正确,请不要犹豫,给一个替代scheme。 我对Firebase相当陌生,有一个多人游戏应用程序,我的结构目前看起来如下所示: "HTGames" : { "-KFGX5H3rLSnpPvupakm" : { { "Red" : 1, "Green" : 3, "Blue" : 2, "GameLimit" : 1, "P1Name" : 3, "P2Name" : 2, "P3Name" : 1, "P1Points" : 3, "P2Points" : 2, "P3Points": 3, "numberOfPlayers" : 1. "gameStart": true } }, "-X5Hhgljh3rLSnpPvum" : { { "Red" : 1, "Green" […]

使用核心数据时可能有复杂的索引吗?

我正在研究一个iOS闪存卡风格的学习应用程序,在加载时需要从Core Data获取一堆数据。 但是我需要的数据是一个相当特定的实体子集,基于用户设置,所以有多个谓词涉及testing等价性。 我发现这些提取超慢,基于对SQLite的研究,我认为索引将是一个很好的select。 现在,我明白(很大程度上来自阅读其他stackoverflow问题),SQLite和核心数据是两个不同的,基本上正交的东西,不应该混淆。 但是我的理解是,你应该通过Core Data来做任何types的数据库工作和调整; 在应用程序中优化或devise对象永久性时,您不应该尝试绕过并直接使用SQLite。 但是我唯一可以在Core Data中find索引的就是模型中每个属性的一个“索引”checkbox。 这只是没有做我想要的那种优化。 以下是抓取请求,目前是: NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"SKUserItem" inManagedObjectContext:context]; fetchRequest.entity = entity; NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"next" ascending:YES] autorelease]; fetchRequest.sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; NSMutableArray *predicates = [NSMutableArray arrayWithCapacity:6]; [predicates addObject:[NSPredicate predicateWithFormat:@"next < %f", now() + (60.0*60.0*24.0)]]; [predicates addObject:[NSPredicate predicateWithFormat:@"next […]

我应该为Realm中的每个实体定义主键吗?

我注意到设置PK在Realm中不是强制性的,只是可以省略。 但是在文档中指出: 索引是为主键属性自动创build的。 我想澄清一些问题: 1)如果我没有自己分配,那么PK的缺省值是由Realm定义的。 它是散列或什么的? (如果我不设置PK并调用[MyRealmObject primaryKey]则返回nil ) 2)如果这个隐式PK是默认索引的? 我是否应该担心,因为如果它没有被索引,这是否意味着它会影响这个实体的整体性能(例如,获取对象)? 3)每次为每个RLMObject子类定义PK还是不需要Realm,并且可能只依赖Realm本身定义的内部实现?

我应该在哪里存储我的iPhone应用程序的SQLite数据库?

我有几个市场上的iOS应用程序,并在他们所有的我有一个小的SQLite数据库文件连接到应用程序,以提供用户我的数据。 一旦安装,用户通过更改某些选项来定制这个数据库。 到目前为止,所有这些应用程序都将数据库存储在NSDocumentsDirectory 。 在提交上次更新之后,由于将数据存储在错误的位置而被拒绝。 对于拒绝的应用程序,我将存储位置更改为NSCachesDirectory 。 我现在担心caching将被清除,并删除用户定制。 该应用程序仍然会运行,数据库将得到重新创build,但所有更改的表将被重置,从而扰乱用户。 这种types的数据库文件应该存储在哪里? 我是否正确地把它放在Docs目录中? 根据苹果公司的说法,Docs目录是“关键数据”,它是用户生成的数据或正确操作应用程序所需的数据。 我觉得它属于这一类,坚持我的用户设置是正确的操作,但谁想要等待上诉?

devise使用核心数据的聊天应用程序

我正在写一个聊天应用程序,我正在更改我的数据库使用核心数据的过程。 我目前直接使用sqlite,但我想利用iCloudfunction,所以我正在切换引擎。 我的主表被称为Entry具有以下属性: NSInteger type; NSDate* timestamp; NSString* username; NSString* session; NSString* body; 其中“types”可以是: 1 – message 2 – file transfer (which then 'body' represents a file name in the documents folder) 3 – user joined 4 – user left 我的应用程序还支持多用户聊天(因此为什么'用户join'/'用户离开'types)。 所有消息属于同一个对话(仅限多聊天),将具有有效的“会话”属性。 在我的聊天logging中,我的问题是如何实现苹果在短信应用程序中的“加载更多”:我将根据'username=%@ AND session IS NULL'或'session=%@'进行查询以显示历史logging并使用50个“时间戳”sorting的LIMIT。 然后,我想要一个button“加载更多”,将加载下50个消息 – 我不知道如何与核心数据。 我的下一个问题是如何显示对话列表。 现在使用原始的sqlite,我对2个查询执行一个连接:第一个是每个用户的最后一个消息,第二个是每个多用户对话的最后一个消息。 然后我按datesorting。 由于核心数据不支持连接,我不知道如何执行此查询。 谢谢

基于REST的客户端 – 服务器同步

这个问题是关于我认为是在Android / iOS开发中的一个非常普遍的问题,但我还没有find任何“标准”的解决scheme。 假设我们有一个相当普通的REST API。 服务器数据库包含(除其他之外)具有1:N关系的表格countries和towns 。 客户端(移动应用程序)想要维护这两个表的本地快照。 因此,当它处于脱机状态时,它可以执行通常通过REST执行的查询,例如:“获取人口> = 100的奥地利城镇名单”? 如何解决这个问题? 第一个问题:一致性。 客户端应该有两张表的快照。 如果客户端下载towns表的更新并下线,某个城镇可能会引用一个不在countries表的本地副本中的countries 。 第二个问题:客户端应该只下载新的/删除/更改的行。 get_updates_since(…) REST并使用一些自定义RPC调用,比如get_updates_since(…) ? 第三个问题:如何将客户端的数据库副本(可能离线)的本地更改与服务器同步? 自定义RPC调用?

iOS从蓝牙接收数据,然后通过Wi-Fi将信息发送到另一台服务器上的数据库

我应该研究哪些库来完成以下任务? 我想通过蓝牙从其他设备接收string(这将需要查看附近设备的列表,并select正确的。 然后我想通过Wi-Fi将string发送到数据库 这是我真正想做的一个简单的版本,但我需要知道如何做这些事情。 此外,任何devise技巧将不胜感激(如有多个屏幕,写什么类等)。

服务器/客户端结构服务器实现方面的build议iOS应用程序开发?

必须有很多应用程序被devise为与服务器通信。 我的问题只是关于安装在iOS设备+服务器端服务交互的应用程序。 networking应用程序不是我所说的,而且根本没有涉及这个讨论的网页。 典型的例子是像Instagram和Twitter这样的应用程序,其中应用程序和服务器之间交换的大部分信息只是像String,Image和Integers(用JSON或XML包装)的数据,不需要网页展示。 我的问题是:如果你是一个独立的应用程序开发人员,而且你正在从头开始devise这样的应用程序,而没有任何现有的网站API,数据库结构或应用程序(所以你不受任何现有的API或数据库结构或应用程序协议的限制)什么将是最有效的方法? 服务器端需要做的是: 接收App发送的数据; 用devise的逻辑处理数据; 与数据库交互(如MySQL); 做必要的数据挖掘和分析 – 这可能是一个不断运行的服务或应用程序客户端请求的一次性任务; 根据要求或自发地将数据发送回应用程序; 在不同的应用程序客户端之间交换或广播数据(即:聊天室群组和对等消息); 据我所知,有3个明显的选项来实现服务器端: PHP python Ruby on Rails (请随时添加更多选项) 我的问题是: 哪一个是实现服务器端最合适的select? 如果应用程序正在密集关注自然人类语言/文本search,分析和数据挖掘,哪一个是最佳select? 我听说Python在这方面做得很好。 有关数据库select的任何build议? 我现在正在使用MySQL,而且我发现它对我的目的来说非常强大,我听说Twitter正在转向Cassandra。 这会太难以开始吗? 对于服务器端来说,如果你需要build立一个服务器pipe理界面,作为pipe理员来pipe理和监视社区,会员,数据等,是否有任何现有的解决scheme,框架或工具呢? 什么是最有效的方法? 如果一个新的程序员没有经验的话,你build议他/她从哪一个开始呢? 在这种情况下,我们可以从中学习到服务器端有没有很好的参考资料或示例代码? 我知道在Stackoverflow上有很多非常有经验的专家,但是我看到更多刚进入iOS开发领域的新手,没有太多的服务器/数据库编程经验知识。 我希望这个线程可以帮助那些想要devise一个服务器/客户端结构的应用程序,但不知道从哪里开始。 PS:我会不断更新这个问题的线程,并添加我的调查结果关于这个话题,以帮助所有其他用户在stackoverflow。 :-)请尽量让你的答案翔实,易于理解和build设性的。 我想这个主题的大部分读者将是这个伟大社区的新成员。

将图像存储到sqlite数据库

下面是我的代码来存储图像在sqlite数据库。 当我用它来存储值的作品,现在我试图在sqlite数据库中存储图像。 我不知道我在做什么错。 我已经搜查了,我不能得到我需要的答案。 任何人都可以用他的代码帮助我 sqlite3 *database; dbName=@"dataTable.sqlite"; NSArray *documentpath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentdir=[documentpath objectAtIndex:0]; dbPath=[documentdir stringByAppendingPathComponent:dbName]; sqlite3_stmt *compiledStmt; if(sqlite3_open([dbPath UTF8String], &database)==SQLITE_OK){ NSLog(@"Name:%@,Company:%@,URL:%@",model.personName,model.companyName,model.imgurl); const char *insertSQL="insert into Persons(PersonName,CompanyName,ImgUrl,PersonImage)values(?,?,?,?)"; if(sqlite3_prepare_v2(database,insertSQL, -1, &compiledStmt, NULL)==SQLITE_OK){ sqlite3_bind_text(compiledStmt,1,[model.personName UTF8String],-1,SQLITE_TRANSIENT); sqlite3_bind_text(compiledStmt,2,[model.companyName UTF8String],-1,SQLITE_TRANSIENT); sqlite3_bind_text(compiledStmt,3,[model.imgurl UTF8String],-1,SQLITE_TRANSIENT); NSData *imageData=UIImagePNGRepresentation(imageView.image); sqlite3_bind_blob(compiledStmt, 4, [imageData bytes], [imageData length], NULL); NSLog(@"Prepare"); sqlite3_step(compiledStmt); }sqlite3_finalize(compiledStmt); } 更新: 感谢大家..我清除这个问题,从这里问另一个问题.. 存储和检索到iPhone的数据库的图像这可能有助于他人。

Android,Windows Phone和iOS可以使用的内部和外部数据库是什么?

我想知道什么是我可以使用每个移动操作系统的内部和外部数据库。