Objective-C - 像MySQL一样的核心数据关系的JSON格式 - 最佳实践
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Objective-C - 像MySQL一样的核心数据关系的JSON格式 - 最佳实践相关的知识,希望对你有一定的参考价值。
我有JSON喜欢:
{
cities: {
1: "London",
3: "New York",
9: "Tokio",
10: "Moscow"
},
keywords: {
120: "walk",
121: "run",
122: "eat",
123: "lake"
},
parks: [
{
id: "1",
likes: "5",
parkName: "Park 1 in NEW YORK",
city: "3", // id of the City NEW YORK
keywords: [
"120",
"121"
]
},
{
id: "1",
likes: "678",
parkName: "Park 2 in NEW YORK",
city: "3", // id of the City NEW YORK
keywords: [
"120",
"123"
]
},
{
id: "1",
likes: "416",
parkName: "Park in London",
city: "1", // id of the City London
keywords: [
"123",
"122"
]
},
... so many ...
]
}
}
所以,在Xcode中,我想这样使用:sample Xcode Core Data relationship
我创建NSManagedObject子类,我有这样的方法:
- (void)addParksObject:(PKParks *)value;
- (void)removeParksObject:(PKParks *)value;
- (void)addParks:(NSSet<PKParks *> *)values;
但是,我希望使用城市和关键字的ID将Parks表连接到mysql中的另一个表。所以,我有很多公园,一些城市和关键词。
这种方式对存储数据的方法是否正确?
- 我应该存储城市和关键字的ID吗?
- 我应该手动连接表,就像MySQL一样吗?
- 我应该将JSON格式更改为无ID吗?
例如JSON:
{
parks: [
{
id: "1",
likes: "5",
parkName: "Park 1 in NEW YORK",
city: "NEW YORK",
keywords: [
"walk",
"run"
]
},
{
id: "1",
likes: "678",
parkName: "Park 2 in NEW YORK",
city: "NEW YORK",
keywords: [
"walk",
"lake"
]
},
{
id: "1",
likes: "416",
parkName: "Park in London",
city: "London",
keywords: [
"lake",
"eat"
]
},
... so many ...
]
}
}
答案
但是,我希望使用城市和关键字的ID将Parks表连接到MySQL中的另一个表。
这是认为Core Data就像SQL一样的经典错误。它使用SQLite,但SQL式思维会让你陷入困境。
核心数据旨在保存模型对象的实例。这些对象可能具有也是模型对象的属性。这是核心数据关系。您不使用外键或对象ID来表示关系,而是使用模型对象属性。核心数据将其转换为SQL或从SQL转换。
您可能想要了解一下how Core Data relationships work。
以上是关于Objective-C - 像MySQL一样的核心数据关系的JSON格式 - 最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
C# 是像 Objective-C 和 C++ 一样的 C 超集吗?