Objective -C-核心数据关系的JSON格式,例如MySQL-最佳实践



我有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中,我想这样使用:样本Xcode核心数据关系

我创建nsmanagebject子类,我有此方法:

- (void)addParksObject:(PKParks *)value;
- (void)removeParksObject:(PKParks *)value;
- (void)addParks:(NSSet<PKParks *> *)values;

但是,我希望使用城市和关键字的 id 将公园表连接到MySQL中的另一个表格。所以,我有很多公园,一些城市和关键字。

这是存储数据正确方法的方法吗?

  1. 我应该存储 id 城市和关键字吗?
  2. 我应该像在mysql中一样手动连接桌子?
  3. 我应该将JSON格式更改为没有IDS吗?

例如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将公园表连接到MySQL中的另一个桌子。

这是认为核心数据就像SQL的经典错误。它使用 sqlite,但是SQL风格的思维会让您陷入困境。

核心数据旨在保存模型对象的实例。这些对象可能具有模型对象的属性。那是核心数据关系。您不使用外键或对象ID来表示关系,而是使用模型对象属性。核心数据将其转换为SQL。

您可能想阅读一些有关核心数据关系的工作方式。

相关内容

最新更新