繁体   English   中英

设计与逻辑-保存重新排序的UITable行的最有效方法

[英]design & logic - Most efficient way to save reordered UITable rows

在此处输入图片说明

蓝色的表格称为Routine ,另一个称为Exercise

Routine.exerciseExercise.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM