Я пытаюсь синхронизировать данные между вебом-сервером и андроидом app.So, я отслеживаю этой большой совет: Sync data between Android App and webserverSQLiteOpenHelper, Кратные Столы и ContentProvider
Теперь, я на самом деле работаю в первой части делая контент-провайдера. Для этого я нашел этот учебник: http://www.vogella.com/articles/AndroidSQLite/article.html
И в этом учебном пособии они предлагают сделать один SQLiteOpenHelper для каждой таблицы. Он работал хорошо для меня, но я понял, что это было немного странно, потому что я буду иметь один файл для каждой таблицы
Как это:
public class AppUserDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "appusertable.db";
private static final int DATABASE_VERSION = 1;
public AppUserDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Method is called during creation of the database
@Override
public void onCreate(SQLiteDatabase database) {
AppUserTable.onCreate(database);
}
}
Итак, я начал делать некоторые исследования и Я узнал об этом: Should there be one SQLiteOpenHelper for each table in the database? и эта ссылка в частности: http://blog.foxxtrot.net/2009/01/a-sqliteopenhelper-is-not-a-sqlitetablehelper.html, и это имеет для меня большой смысл.
Ну, моя проблема заключается в том, что на самом деле это также делает большой смысл иметь один ContentProvider для каждой таблицы, потому что, если я этого не сделаю, это будет огромным и очень запутанным, но в каждом ContentProvider есть место, где я на самом деле создание базы данных:
public class AppUserContentProvider extends ContentProvider {
@Override
public boolean onCreate() {
database = new AppUserDatabaseHelper(getContext());
return false;
}
}
И это также дает мне доступ к базе данных.
Так что мой вопрос: Я просто должен сделать гигантский ContentProvider для всех таблиц? или существует другой способ создания базы данных, которая должна быть разделена между каждым ContentProvider?
Я надеюсь, что вы можете помочь мне Спасибо советов
Мне интересно, почему это предполагает наличие одного 'SQLiteOpenHelper' за таблицу. Как выполнить запрос, когда вам нужно присоединиться, скажем, две или три таблицы? –
Мне было интересно то же самое. Я думаю, что большинство веб-уроков или примеров как-то бесполезны, когда вы должны что-то делать по-настоящему. Практически невозможно иметь приложение с одним столом, и это не так, как вы должны повторить все, чтобы его решить. – ginobilicl
Я думаю, что это [сообщение] [1] поможет вам. [1]: http://stackoverflow.com/questions/13877701/sqliteopenhelper-one-for-each-table-in-database – telmo