我有一个服务器客户端数据库设计,我不确定Core Data是否合适?
我有一个服务器数据库,它将维护数据的主副本及其关系。
每个客户端应用程序都将具有一个只有关系的空客户端数据库。
在启动客户端后,它将从服务器请求数据并尝试使用数据填充它。
由于客户端数据库中的关系将导致插入失败,客户端将编译一个仍缺少的信息列表,并在成功插入所有信息之前提出必要的请求。
总而言之,客户端只有服务器的数据子集。
在我的设计中,主键和关系必须由服务器数据库管理。
但似乎Core Data有目的地抽象了主键和关系的管理。
我可以使用Core Data模拟我自己的主键和关系机制。同时获得Core Data提供的好处。
或者实现SQLite并处理我自己的数据。
答案 0 :(得分:1)
使用核心数据。如果使用SQL,最终还是会手动复制大量的Core Data功能。
完成这项工作的关键是充分理解数据,以便将其转化为对象。在设计Core Data实体图时,不要错误地考虑表,列和行。您没有尝试为SQL数据库建模。
相反,您尝试创建一个模拟数据本身所代表的真实世界对象,条件或事件中的关系的图形。如何在磁盘上管理数据与设计无关。毕竟,如果您的数据来自多个来源,该怎么办?
一旦拥有了良好的模型,那么您需要做的就是从服务器中提取数据,然后将正确的数据放入正确实体及其属性的实例中。如果你有一个设计合理的模型,那么这个任务总是相对微不足道的。