可能使用不同的预填充sqlite数据库的核心数据?

可能使用不同的预填充sqlite数据库的核心数据?

问题描述:

我对核心数据并不熟悉,所以我想知道是否有可能将不同的预填充sqlite数据库加载到核心数据以及性能如何?可能使用不同的预填充sqlite数据库的核心数据?

我有一个客户端将数据存储在远程服务器上的多个sqlite数据库中。每个sqlite数据库将基本上代表应用程序中的一个组,并且可能有10到100个不同的组,每个组都有自己的小型sqlite数据库。所有数据库都有相同的模式和表结构,可以远程更新,一次只能使用一个数据库。

在这种情况下使用核心数据有可能甚至是可取的吗?我既可以:

  1. 从远程服务器下载的源码分贝,然后根据需要直接访问分贝使用SQL或加载每个分贝,
  2. 下载SQLite的分贝,并使用核心数据加载每个db和工作这样呢?虽然从我读过的核心数据使用一堆专有的表格等来跟踪数据库,所以不可能只交换不同的数据库,即使它们具有相同的模式?

任何想法? thx

是的,我现在就这样做。如果需要,我可以给你更多的例子,但这里是我做的:

  1. 在Mac上通过sqlite3创建数据库。
  2. 将在应用程序的包
  3. 在应用程序启动数据库,如果数据库不在应用程序的文档文件夹,从包复制到那里
  4. 从应用程序的包中使用该数据库。

或者,您可以从网上下载,而不是执行第2步和第3步 - 但我只会在非常大的情况下执行此操作,并且在应用程序加载时可能不会立即可用。

内的applicationDidFinishLaunching:

NSFileManager *fm = [[NSFileManager alloc] init]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *mapPath = [documentsDirectory stringByAppendingPathComponent: @"datafile.sqlite" ];  
if (![fm fileExistsAtPath:mapPath]) { 
    // Does Not Exist!! 
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"datafile" ofType:@"sqlite" inDirectory:@"datafiles"]; 
    NSData *myData = [NSData dataWithContentsOfFile:filePath]; 
    if (myData) 
     [fm createFileAtPath:mapPath contents:myData attributes:nil]; 
} 

在过去的几个星期我和我的同事都在讨论的预填充服务器上的CoreData店的最佳途径。我们发现Objective-C web框架Bombax和 想要尽快尝试。
这个想法是,Bombax服务器可以使用所有可用的框架,包括CoreData。
不足之处:服务器必须是一个mac。

+0

听起来很有趣,会检查出来。 – James 2010-10-27 17:08:10

+0

不要犹豫,投票 – vikingosegundo 2010-10-27 17:11:48