0

次の属性を持つ Workout というエンティティがあります。

ワークアウト日

実行時間

楕円時間

stairMastersTime

ベンチプレス重量

ユーザーは、アプリを使用する前に「@ユーザー名」の形式でアカウントを作成する必要があります。ホスティングにstackmobを使用しています。ユーザーが作成されたら、後でフェッチするために、ユーザーが作成した各「ワークアウト」オブジェクトをユーザーのプロファイルの下に保存したいと思います。

質問 1: すべてのユーザー オブジェクトが 1 つの場所に保存された 1 つのデータベースを避けるにはどうすればよいですか? プロファイルとして機能するユーザー名ごとにエンティティを作成し、各「ワークアウト」オブジェクトをプロファイルの下に保存する必要がありますか? ユーザーが日付に基づいてこれらのオブジェクトを取得できるようにしたいと考えています。すなわち、2013 年 1 月から 6 月まで?; 過去 6 週間?; オブジェクトを UITable に表示します。

質問 2: ユーザーがこれらのオブジェクトを別のユーザーに送信することも希望しています。つまり、詳細を @Trainer に送信します。プッシュ通知を使用して、別のユーザーがオブジェクトを送信したことを受信ユーザーに通知すると思います-Facebook通知のようなものです。その時点で @Trainer は、受信したオブジェクトをダウンロードして表示、編集、または削除できます。等

パフォーマンスを損なうことなく、これらのタスクの両方を達成するための最良の方法は何ですか?

誰かが私を正しい方向に向けてくれますか/ありがとう!

4

1 に答える 1

1

質問 1: すべてのユーザー オブジェクトが 1 つの場所に保存された 1 つのデータベースを避けるにはどうすればよいですか? プロファイルとして機能するユーザー名ごとにエンティティを作成し、各「ワークアウト」オブジェクトをプロファイルの下に保存する必要がありますか? ユーザーが日付に基づいてこれらのオブジェクトを取得できるようにしたいと考えています。すなわち、2013 年 1 月から 6 月まで?; 過去 6 週間?; オブジェクトを UITable に表示します。

私の理解としては。データベースを正規化する必要があります。データベースには次のものが必要です

  1. ユーザー
  2. ユーザー ロール - ユーザーとの 1 対多の関係。
  3. 特権 - ユーザー ロールとの 1 対多の関係。ワークアウトを作成、更新、編集、削除する権限
  4. ワークアウト - ユーザーとの多対 1 の関係
  5. 通知イベント - ユーザーとの多対多の関係。

ユーザーごとに 1 つのエントリを作成する必要があります。関係は User<-->>Workout になります。ユーザーは多くのワークアウト (1 対多) を持つことができますが、ワークアウトには 1 人のユーザー (1 対 1 の関係) があります。ワークアウトにはワークアウト日付があるので、簡単に timeReference を渡して、ユーザーにマップされたワークアウトを要求できます。

質問 2: ユーザーがこれらのオブジェクトを別のユーザーに送信することも希望しています。つまり、詳細を @Trainer に送信します。プッシュ通知を使用して、別のユーザーがオブジェクトを送信したことを受信ユーザーに通知すると思います-Facebook通知のようなものです。その時点で @Trainer は、受信したオブジェクトをダウンロードして表示、編集、または削除できます。等

ワークアウトを使用して、ユーザー間でマッピングされたイベントを作成できます。イベントの一意の識別子をプッシュ通知と共に渡すことができます。この一意の識別子を使用して、ユーザーに送信されるワークアウトを取得できます。

ユーザーには役割があり、役割には権限があります。許可に基づいてワークアウトを変更することを許可する必要があります。

リモート ユーザー データベースがあるため、coredata を使用することで、変更されたもののデルタのみを保持して取得できます。または、毎回データをフェッチする余裕がある場合は、in memory store を使用してデータを適切に構造化して保存し、それに応じて編集することができます。

于 2013-03-10T13:28:14.687 に答える