我有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中的另一个表。所以,我有很多公园,一些城市和关键词。
这种方式对存储数据的方法是否正确?
例如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。