我有像这样的 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 ...
]
}
}
最佳答案
But, I was expecting to connect Parks table to another tables like in MySQL, using id of the Cities and Keywords.
这是认为 Core Data 就像 SQL 的典型错误。它使用 SQLite,但 SQL 风格的思维方式会给您带来麻烦。
核心数据旨在保存模型对象的实例。这些对象可能具有也是模型对象的属性。这是核心数据关系。您不使用外键或对象 ID 来表示关系,而是使用模型对象属性。 Core Data 将其转换为 SQL 或从 SQL 转换而来。
您可能想阅读一些有关 how Core Data relationships work 的内容。 .
关于ios - Objective-C - 核心数据关系的 JSON 格式,如 MySQL - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47930095/