0

在此处输入图像描述

蓝色的 Table 被称为Routine,另一个被称为Exercise

Routine.exercise与 有Many-to-Many关系Exercise.routine

我有一个UITableView用户可以重新安排项目的顺序,但我在思考如何设计我的实体以便我可以重新排序它们并保存它们的重新排序位置时遇到问题。

我要订购的是 X Routine 练习的 UITable 中的位置。

例如:程序 A 已被选中,并按以下顺序包含以下项目。

E1
E3
E2

当我不能order column在练习实体中放置一个时,我的问题就出现了,因为它是一种Many-to-Many关系。因此,该练习将在不同的例程中具有不同的位置。

虽然我也创建了一个不同的实体来保存位置数据,但这意味着我必须创建 X 列,记住列的数量必须大于典型的练习数量常规可以有。到目前为止,这是我最可行的选择,但我想知道是否有更好的解决方案,因为会有很多未使用的行,并且在存储时将意味着循环遍历所有空行并取消它们以防万一。

谁能想到更好的方法,或者在 Xcode 中是否有更好的方法来存储 UITable 中项目的位置?我可以在字段中存储数组吗?

我正在使用 CoreData。

编辑以回应答案: 在此处输入图像描述

4

1 回答 1

1

多对多关系可以重写为两个一对多关系,中间有一个连接表。也就是说,创建一个表示练习和例程匹配的练习例程表(或更好的名称),并将有关特定关系的任何数据放入其中。

不太灵活的方法——因为您目前只想知道例程中练习的顺序——将顺序存储为一个数组,连接到例程。

(但我推荐选项 #1 作为更好的通用技术。)

于 2013-05-18T13:16:03.973 回答