2011-07-14 10 views
0

人は、カーソルを介してアンドロイドのsqliteデータベースにローディングサーバー側のデータをどのようにidsに関連して動作する必要が明確にできますか? 各テーブルに「_id」列を設定する必要がありますおよびまた、サーバー側のuidを持つ列もありますか?これは扱いにくいようです。 「_id」列に独自の行ID(PostgreSQLデータベースから)を挿入することができるかどうか、そして後で残念に思うようなことがあるかどうかは不明です。カーソル '_id'列をリモートサーバーdbのUIDでアンドロイドする方法はありますか?

答えて

0

_idは、どの列がidであるかを判断するためにCursorAdapterでのみ使用されます。 CursorAdapterでこの動作を無効にするか、queryにidにエイリアスを追加できます。

+0

[メモ帳のドキュメント](http://androidapps.org.ua/i_sect11_d1e7981.html)のようにテキストが混乱しています: "各_idの値はコンテンツプロバイダ内で一意でなければなりません; ... _idにはINTEGER PRIMARY KEY AUTOINCREMENT型が必要です...これは参照整合性をサポートするのに役立ちます... "私のリモートデータベースは、アンドロイドの外で更新されるかもしれません。どのように私自身のuidカラムを_idでエイリアスして、それらのリモートIDを使用するかわかりません。つまり、コンテンツプロバイダの* AUTOINCREMENTカラムはなく、*アンドロイド上に新しい行を作成します。この一般的なパターンのヘルプは非常に感謝します。ありがとうアレックス – Alex

+0

コンテンツプロバイダは単純なソリューションに適しています。このようなシナリオでは、データの変更、競合の解決などが可能でなければなりません.SQLiteDatabaseについて読むことができます。ドキュメンテーションによると、「複数のアプリケーション間でデータを共有する必要がない場合は、SQLiteDatabase経由で直接データベースを使用できます。 – pawelzieba

+0

最後に、[同じ問題](http://stackoverflow.com/questions/5266860/setting-the-id-field-using-sqlite-contentprovider-in-android)の誰かが、余分な外部キー列を保持することを示唆していますリモートdb行IDへのマッピング。 – Alex

関連する問題