iOSプロジェクトで複数のテーブルを操作する最良の方法と方法は何ですか?FMDBはテーブル間の関係をサポートしていますか? Coredata または FMDB ラッパーを使用する必要がありますか?
2 に答える
やりたいことが何であれ、Core Data または FMDB + SQLite のいずれかを使用できます。
基本的に、次のいずれかに該当する場合は、SQLite を使用することをお勧めします。
- パフォーマンスは本当に重要です
- あなたはすでに他の場所から巨大な SQLite データベースを持っています
- どういうわけかデータベースをクロスプラットフォームにする予定です
SQLite と Core Data の違いについては、このブログ投稿をご覧ください。
ただし、ほとんどの場合、Core Data の方が適しています。Core Data は、(オブジェクト グラフを使用して) 一貫性を維持するのに役立つ優れたフレームワークであり、非常に使いやすいです。性能が悪いと評判ですが、実際はそれほど悪くありません。たとえば、オーバーフェッチは、パフォーマンスを向上させるために使用される一般的なものです。これは、大量のデータを取得してから、実際に必要なデータを除外することを意味します。最近の RAM は実際に非常に優れているため、これは iOS デバイスでうまく機能します。これを使って!
また、Core Data を使用する予定がある場合は、それが SQLite のラッパーではないことを理解する必要があります。通常のようにテーブルについて考えるべきではありません。Core Data には、テーブルではなくエンティティを含むオブジェクト グラフがあります。
結論:
他の場所に SQLite データベース フォームを既に持っていないか、パフォーマンスが非常に重要な場合を除き、Core Data を使用してください。
これに対する良い質問はありません。プロジェクト次第です。
私の意見では、アプリケーションにインポートしたいデータが既にいくつかあり、データベースで大量のデータに直面する場合は、純粋なsqlite
(そしておそらく FMDB) を選択する必要があります。
RESTに接続している場合、TableViewsを使用したい場合は、空のデータベースから始めるCoreData
のが正解です。
FMDB はラッパーにすぎないsqlite
ため、sqlite と同様に関係があります。