0

この問題を解決する最善の方法を見つけようとしています。

--

データのあるすべての年を一覧表示する「履歴」テーブルがあります。

ユーザーが特定の年をクリックすると、新しいテーブルに移動し、データのあるすべての月が一覧表示されます。

特定の月をクリックすると、データのあるすべての日を一覧表示する新しいテーブルが表示されます。

特定の日をクリックすると、1 つまたは複数のタイム スタンプのリストが表示されます。

--

これを解決するための最良のアプローチは何ですか?

ユーザーがタイム スタンプを作成する場合。今日の日付で挿入する必要があります。

また、ユーザーが特定の年を削除する機能も必要です。その年のすべてが削除されます。

同じように、月を削除すると、特定の年のために、その月のすべてが削除されます。

など、ユーザーが個々のタイムスタンプを削除できるようになるまで。

--

「年」のキーを持つ辞書を使用すると思いました。2012 年、2013 年、...

そして、それぞれ「月」、1、2、3、4、...のキーを持つ別の辞書を取得します...

などなど...など...

また、Core Data を使用してモデルを作成できると考えました。

" Year " エンティティを表す Class Year で、多くの可能性のあるMonthと関係があり、各月は多くの可能性のあると関係があり、日はTime * Stamps * と関係があります。

そして最後、

エンティティが 2 つだけのモデルを作成することを考えました。

Time Stamps 」と対多関係にある1 つの属性「Date」のみを持つEntriesは、その特定の日に可能なすべてのタイム スタンプを受け取ります。

私はiOSプログラミングが初めてです。したがって、これは私にとってすべての理論です。しかし、いくつかの Core Data チュートリアルや、NSDictionaries、プロトコル デリゲートなどを扱う他のチュートリアルに従いました。

私がたどる「掘り下げる」アプローチは、よりエレガントに見えます。特に、特定のオブジェクトをカスケード方式で削除できると思うからですか?

これらのどれかが理にかなっていますか? それとも、それを行うためのより明白な簡単な方法はありますか? また、ユーザーが「ツリー」内の特定のエントリを削除することを選択した場合、何が実装しやすいかを回答で検討してください。

どんな助けでも大歓迎です。

よろしくお願いします!

ヌーノ

4

1 に答える 1

1

Core Data またはその他のデータベース エンジンに依存する場合、これを解決する最善の方法は、データベース自体を使用することです。

考えられる解決策は 2 つあります (もちろん他にもあります)。最初の、最も単純な:

Entity
- timestamp
- year
- month
- day
- all_the_stuff_you_need

年、月、日を読み取り専用にし、タイムスタンプに沿って更新します。インデックス: 年、年 + 月、年 + 月 + 日。簡単通話。

そうすれば、データベースに対して非常に簡単なクエリを実行して、必要なエンティティと必要なエンティティのみを返すように要求できます。

より複雑なセットアップは次のようになります。

Entity
- timestamp
- all_the_stuff_you_need
- year -> Year
- month -> Month
- day -> Day

Year
- year
- entities ->> Entity

Month
- month
- entities ->> Entity

Day
- day
- entities ->> Entity

基本的に、年、月、日、月、日の 3 つのデータ ドメインは不変です。

その構造はより複雑ですが、データのより良いビューを提供します。データ ドメインが明示的で明確に定義されているため、データに関するより多くの情報に直接アクセスできます。

3 番目の解決策は、年、月、日を含む日付エンティティを作成し、1 日 1 つのエントリを作成することです。上記の 2 つのソリューションの中間点。あまり面白くないと思いますが、とにかくあなたのニーズに合うかもしれません.

于 2012-08-12T08:38:59.187 に答える