我意识到这对很多人来说可能是常识,所以如果这看起来像一个愚蠢的问题,我深表歉意。
我正在尝试学习iOS编程的核心数据,并且我反复阅读和听到它说核心数据(CD)不是关系数据库。但关于这一点,或者为什么了解超越学术意义的确切内容很重要,却很少有其他的说法。我的意思是至少在功能上,似乎你可以使用 CD,就像它是一个数据库一样,可以完成大多数事情 - 存储和获取数据、运行查询等。从我对它的初步理解来看,我并没有真正看出它与数据库。
我并不质疑这种区别的重要性。我相信,如果理解不了的话,很多聪明人都不会在这一点上浪费时间。但我希望有人能解释一下 - 最好用例子 - CD 不是关系数据库会如何影响我们使用它的方式?或者,如果我没有被告知 CD 不是关系数据库,这会对我作为 Objective-C/Swift 程序员的表现产生怎样的负面影响?
如果将 CD 视为关系数据库,人们可能会尝试错误地执行某些操作吗?或者,是否有一些事情是关系数据库无法做到的,或者做得不如 CD 设计的好?
感谢大家的集体智慧。
人们强调“不是关系数据库”的角度,因为具有一定数据库经验的人很容易在核心数据方面出现特定错误,而这些错误是由于过于直接地应用他们的经验而导致的。一些例子:
- 创建本质上是 SQL 连接表的实体。这几乎没有必要,而且通常会使事情变得更加复杂并且容易出错。 Core Data 直接支持多对多关系。
- 在实体中创建唯一的 ID 字段,因为他们认为需要一个 ID 字段来确保唯一性并创建关系。有时创建自定义唯一 ID 很有用,但通常没有用。
- 根据这些唯一 ID 设置对象之间的关系,而不是使用 Core Data 关系——即保存相关对象的唯一 ID,而不是使用 ObjC/Swift 语义来关联对象。
Core Data 可以而且经常确实充当数据库,但从其他关系数据库的角度来思考它是一个好方法,可以把它搞砸。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)