gpt4 book ai didi

ios - 核心数据复杂关系

转载 作者:行者123 更新时间:2023-11-28 22:26:57 24 4
gpt4 key购买 nike

我有以下实体:

  • 部门
  • 数据

注意:

  • 每个组可以有一个或多个部门
  • 每个组可以有一个或多个数据。组内的每个部门可以拥有其组拥有的全部或任何数据(默认情况下,每个部门将拥有其组中的所有数据;然后每个部门都能够取消标记它不需要的任何数据)<
  • 每个部门都可以与其组内的一个或多个部门相关联

我应该如何设计关系?

最佳答案

您不需要主键,而且我认为您不会在这里处理非常复杂的关系。可能需要“GroupSector”和“SectorData”,但您也可以使用像这样简单的东西。

enter image description here

  • 集团有很多部门;这种类型的关系隐含了“一个或多个”。
  • 集团有很多数据。
  • 数据有一组。
  • 扇区有许多(或可以属于许多)组。您对“每个部门只能是一个组的一部分,也可以是另一个组的一部分”的措辞令人困惑,但似乎暗示与组的“对多”关系。

Each Sector within a Group can either have all or any of the Data that its Group has (by default, each Sector will have all the Data in its Group; then each Sector is capable of untagging any Data that it does not need)

使用此模型,Sector 可以从它所属的 Group 中检索相关数据。 Group 拥有的任何数据,Sector 都可以轻松获取。也就是说,一个扇区可能不需要所有组数据,这就是“untaggedData”属性的用途。该属性可以包含对该扇区应取消标记的任何数据的引用。具有该扇区的组甚至可能没有该数据,但如果有,它将是“未标记的”。我不完全确定这是否是您在这里想要的,所以如有必要请进行说明。

Each Sector can be associated with none, one or more Sectors within its Group.

使用此模型,您应该能够轻松确定哪些扇区属于特定组。您还可以为 Sector 提供另一个与自身的“对多”关系,如下所示:

enter image description here

更新

根据您的评论:

but what should be the attribute type for "untaggedData"

这取决于。它可以是一个简单的 NSString,带有一组以逗号分隔的 Data 属性,例如名称(例如 @"data name 1 , data name 2, ..."假设 Data 具有不变的 name 属性)。也就是说,如果您在数据中引用的属性可能会发生变化,那么这不是一个好的方法,您需要尝试不同的数据模型。

解决方案可能是去掉“untaggedData”属性并使用另一个名为 SectorData 的实体。该实体与扇区具有“一对一”关系,与数据具有“一对多”关系。它也应该与Sector 中的新sectorData 关系和Data 中的sectorData 具有反向关系。可能有一种方法可以浓缩所有这些,但请按原样尝试一下,让我知道你的表现如何。祝你好运!

enter image description here

关于ios - 核心数据复杂关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18648906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com