0

永続性のために sqlite に依存するプロジェクトから始めて、事前にバックアップされたデータベースとプログラムで生成されたデータベースを使用することの意味をよりよく理解しようとしています。これまでのところ、この質問iosched app db exampleに従って、プログラムによるアプローチに傾いています。

それはすべて問題ありませんが、現時点では、特に長期的には、それがより良いアプローチである理由を簡潔に説明できるかどうかわかりません.

PS: ドメイン クラスは jar lib にあり、他の 2 つのアプリで既に jpa 注釈が付けられているため、ormlite を除外しました。

4

2 に答える 2

2

プリベークは問題ありませんが、理想的とは言えないいくつかのプロセスが導入されます。最初に、おそらくテーブルの作成、列のエントリなどをサポートする IDE でデータベースを作成する必要があります。次に、そのデータベースをプロジェクトに保存し、それをアプリケーション データベースとしてインスタンス化するコードを実装する必要があります。

これは、始めたばかりで、後でコードを使用してより詳細で詳細なプロセスを理解できるようになるための優れた最初のステップです。

ただし、このプロセスには多くの問題があります。まず、SQL クエリを保存してテーブルを作成しない限り、データベースを作成する手順が失われます。それでも、微調整して再実行できるプロジェクトの一部ではありません。

他の投稿で述べたように、重複したデータベースがスペースを消費しています。また、データベースは、変更や更新に対応するための柔軟性が大幅に低下します。

単体テストのファンなら、コード化されたソリューションを使用して、DB 生成でテストを実行することを検討できます。これは、データベースの移行を管理する方法にうまく拡張できます。

そのため、最初は長々としたコードでも、最終的には柔軟性が向上し、単体テストがより簡単になり、最終的にはより複雑な変更をより迅速に採用できるようになります。

于 2012-09-02T12:22:44.053 に答える
1

私の経験では、事前に作成されたデータベースを使用しないことで、余分なファイルを追跡して .apk ファイルに含める手間が省けること以外に、いくつかの違いがあります。

事前に作成されたデータベースを使用しないことの利点は前述のものに限られていることを考えると、それらを使用することが余分な作業に値するシナリオがまだあります。良い例は、大量のデータまたは複雑なデータがプリロードされたデータベースです。

それ以外の場合は、事前に作成されたデータベースを使用しないことをお勧めします。

于 2012-09-02T14:02:14.323 に答える