gpt4 book ai didi

ios - 设计核心数据数据库

转载 作者:行者123 更新时间:2023-11-28 21:52:13 25 4
gpt4 key购买 nike

我正在尝试学习 osx,我想了解有关核心数据的更多信息。我已经阅读了部分文档和一些书籍,现在我正在对核心数据进行一般性试验。

尝试制作简单的 mac 应用程序时,我遇到了数据库设计问题:假设在 RDBMS 中你会有像这样的 ids、primaryKeys 和 foreignKeys

table products
productID
categoryID
etc....

table Categories
categoryID
etc.....

我的问题是:

  1. 核心数据中的主键相当于什么?
  2. 核心数据中外键的等价物是什么?
  3. 如何确保记录在表中是唯一的?
  4. 谁能阐明核心数据数据库的设计理念?

任何关于核心数据的链接(苹果的核心数据编程指南除外)将不胜感激。

问候,约翰

最佳答案

首先,你必须明白Core Data是一个面向对象的持久层,而不仅仅是一个数据库。在这里,您必须将您的思维从记录、关节和查询转变为面向对象的设计。

在这里我试图回答你的问题:

1。核心数据中的主键相当于什么?

Core Data 有自己的主键系统。每个对象都由一个唯一的“ObjectID”标识,该对象将在内部用作主键。

您可以在您的实体中定义尽可能多的属性并将它们用作“主键”。但是,您将无法使您的“记录”(对象)独一无二,因为它没有意识到“具有特定属性的对象是独一无二的”。这种逻辑是你必须以编程方式添加的。

2。核心数据中外键的等价物是什么?

外键在 Core Data 中由关系表示。有一对一关系和一对多关系。这意味着一个对象可以有一个指向另一个对象的指针(因此,在数据库中你会有一个“外键”)或者一个对象有一个包含其他对象的集合(例如一个数组)(因此,在数据库中你会有一个额外的表来表示这个结构)。

3。如何确保记录在表中是唯一的?

如上所述,您不能。在 CoreData 中,每个上下文 (NSManagedObjectContext) 都有唯一的对象 (NSManagedObject),但您无法控制具有特定属性的对象在其他对象中是唯一的。

4。谁能阐明核心数据数据库中的设计理念?

正如介绍中所说,这里你不应该从数据库的角度来思考。 Core Data 是一个面向对象设计的持久化框架。

核心数据不是一个可以快速学习的简单事物。你需要花一些时间来了解你能做什么,最重要的是,为什么以及在什么情况下你应该这样做。

我强烈建议您阅读核心数据编程指南:

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/cdProgrammingGuide.html

希望对你有帮助,

关于ios - 设计核心数据数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27899749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com