蓝色表格称为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。
编辑回答:
答案 0 :(得分:1)
多对多关系可以重写为两个一对多关系,中间有一个连接表。也就是说,创建一个ExerciseRoutine表(或更好的名称),表示练习和例程的匹配,并在其中放置有关特定关系的任何数据。
灵活性较低的方式 - 因为您目前只想知道例程中练习的顺序 - 将命令存储为连接到例程的数组。
(但我建议选项#1作为一种更好的通用技术。)