同一请求中相同类型对象的唯一标识符

时间:2016-02-11 14:51:46

标签: mysql sql core-data

这个问题是关于您对关系数据库的看法和常用方法。 所以请不要投票给我。我真的需要解决这个问题。。一旦我得到答案,我就删除了这个问题。

我的服务器响应是这样的:

"groups":[  
              {  
                 "id":"ea369ff6-cbc3-44b6-8eb6-b79e8db0145c",
                 "ingredients":[  
                    {  
                       "id":"f5126c1f-11a7-5ce5-a717-c6c86483058e",
                       "name":"First",
                       "position":1
                    },
                    {  
                       "id":"dfcf217e-53dd-b06c-9f2b-084f8180ba1a",
                       "name":"Second",
                       "position":2
                    }
                 ]
              },
              {  
                 "id":"0fa91ada-1fe4-4d6d-b772-caae44758848",
                 "position":2,
                 "ingredients":[  
                    {  
                       "id":"9cacade2-92fe-bd5c-c84c-7c5fe36c8a5e",
                       "name":"Third",
                       "position":1
                    },
                    {  
                       "id":"f5126c1f-11a7-5ce5-a717-c6c86483058e",
                       "name":"First",
                       "position":2
                    }
                 ]
              }
           ]
  • 这是两个groups。他们每个人都有独特的身份。
  • 每个group都有一些ingredients。它们是相同的类型
  • 每个组都有名称为First的成分。这个成分在每个组中都相同 id,这意味着它是同一个对象。

First成分具有不同的position值,具体取决于它所在的位置。

问题是:

他们是否有相同的id而他们不一样?这个问题的好方法是什么?我需要简单,快速和明确的答案。

不同意味着这与同一类型的对象一起是唯一的吗?如果我需要将其保存到核心数据或设备上的其他持久存储中,该怎么办?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您有GroupIngredient之间的多个关系:每个Group可以包含多个Ingredients,每个Ingredient可以属于多个Groups position {1}}。但是,您有一个额外的属性Group取决于IngredientListItem:它是关系的属性,而不是任何一个实体。< / p>

要在CoreData中对此进行建模,您必须添加第三个实体。我们称之为ListItemposition将具有Group属性,并且与IngredientGroup之间存在一对一的关系。反向关系将为多个:每个ListItems可以包含多个Ingredient,每个ListItems可以属于多个Group

Data Model Editor image

解析服务器中的数据时,您可以为每个组id创建一个唯一的Ingredient对象,为每个成分id创建唯一的ListItem。然后创建Group,指定正确的位置,并将其与相关Ingredient对象和df.loc[(df['Year']==1980) & (df['Name'].str.contains("John")),'Year_2'] = 2010 对象的关系设置为。