[英]design & logic - Most efficient way to save reordered UITable rows
蓝色的表格称为Routine
,另一个称为Exercise
。
Routine.exercise
与Exercise.routine
具有Many-to-Many
关系。
我有一个UITableView
,用户可以重新排列项目的顺序,但在思考一种设计实体的方法时遇到了问题,以便我可以对它们进行重新排序并保存其重新排序位置。
我要订购的是X例程中的练习在UITable中的位置。
例如:例程A已被选择,并且它具有以下顺序的下列项目。
E1
E3
E2
当我无法在“锻炼”实体中放置order column
,出现了我的问题,因为这是一个Many-to-Many
关系。 因此,该练习在不同的例程中将具有不同的位置。
我也尽管创建了另一个保存位置数据的实体,但是那意味着我必须创建X列数,同时要记住列数必须大于一个典型的练习数。例行可以的。 到目前为止,这是我最可行的选择,但我想知道是否有更好的解决方案,因为将有很多行未使用,并且在存储时将意味着遍历所有空行并以防万一。
谁能想到一种更好的方法,或者在Xcode中有一种更好的方法来将项目的位置存储在UITable中? 我可以在字段中存储数组吗?
我正在使用CoreData。
编辑以回答答案:
可以将多对多关系重写为两个一对多关系,中间有一个联接表。 也就是说,创建一个ExerciseRoutine表(或更好的名称)来表示Exercise和Routine的匹配,然后在其中放置有关特定关系的任何数据。
较不灵活的方法(因为您当前只想知道例程中的练习顺序)将是将顺序存储为连接到例程的数组。
(但我建议将选项#1作为更好的通用技术。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.