0

ここに画像の説明を入力

青いテーブルが呼び出されRoutine、もう 1 つのテーブルが呼び出されExerciseます。

Routine.exerciseMany-to-Many関係がありExercise.routineます。

ユーザーがUITableViewアイテムの順序を並べ替えることができるという問題があり、エンティティを並べ替えて並べ替え位置を保存できるようにエンティティを設計する方法を考えるのに問題があります。

私が注文したいのは、Exercises in X Routine の UITable 内の位置です。

例: ルーチン A が選択されており、次の項目が次の順序で配置されています。

E1
E3
E2

私の問題は、関係order columnがあるためにエクササイズエンティティに を入れることができないときに発生します。Many-to-Manyしたがって、そのエクササイズは、異なるルーチンで異なる位置を占めます。

また、位置データを保持する別のエンティティを作成することについても考えましたが、それは、列の量が通常の演習の数よりも大きくなければならないことを念頭に置いて、X 量の列を作成する必要があることを意味します。ルーチンが持つ可能性があります。これはこれまでのところ私の最も実行可能なオプションですが、未使用の行がたくさんあり、保存中にすべての空の行をループして念のためにそれらを無効にすることになるため、より良い解決策があるかどうか疑問に思っていました.

誰もがより良い方法を考えることができますか、またはXcodeで項目の位置をUITableに保存するより良い方法はありますか? フィールドに配列を格納できますか?

CoreData を使用しています。

答えに応じて編集: ここに画像の説明を入力

4

1 に答える 1

1

多対多の関係は、中間に結合テーブルを持つ 2 つの 1 対多の関係として書き直すことができます。つまり、Exercise と Routine の一致を表す ExerciseRoutine テーブル (またはより適切な名前) を作成し、特定の関係に関するデータをそこに配置します。

柔軟性の低い方法は、現在ルーチン内のエクササイズの順序のみを知りたいため、ルーチンに接続された配列として順序を格納することです。

(しかし、より優れた汎用手法として、オプション #1 をお勧めします。)

于 2013-05-18T13:16:03.973 に答える