mysql 同一请求中同类对象的唯一标识符[已关闭]

p3rjfoxz  于 2023-02-18  发布在  Mysql
关注(0)|答案(1)|浏览(94)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。

3天前关闭。
Improve this question
这个问题寻求关系数据库的观点和通用方法。
我从我的服务器得到如下响应:

"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,每个都有唯一的id。
  • 每个group都有一些ingredients,它们是相同的类型
  • 每个组都有名称为First的成分。此成分在每个组中都有相同的id,这意味着它是同一个对象。
    但是

第一种成分具有不同的position值,具体取决于其位置。

问题是

它们应该有相同的id,而它们不相同吗?什么是解决这个问题的好方法?
“id”是否意味着这对于相同类型的对象是唯一的?如果我需要将其保存到设备上的核心数据或其他持久存储中,该怎么办?

bxjv4tth

bxjv4tth1#

GroupIngredient存在多对多关系:每个Group可以有多个Ingredients,每个Ingredient可以属于多个Groups。但是您还有一个附加属性position,它依赖于GroupIngredient:它是 * 关系 * 的属性,而不是任一实体。
要在CoreData中对此进行建模,您必须添加第三个实体。我们将其命名为ListItemListItem将具有position属性,并且与GroupIngredient具有一对一关系。相反的关系将是多对关系:每个Group可以具有多个ListItems,并且每个Ingredient可以属于多个ListItems

解析服务器中的数据时,需要为每个组id创建一个唯一的Group对象,为每个成分id创建一个唯一的Ingredient,然后创建一个ListItem,分配正确的位置,并设置其与相关Group对象和Ingredient对象的关系。

相关问题