У меня есть довольно прямая таблица ссылок, представляющая модули и преподавателей
final String table = "module_tutor";
final String[] columns = {"module_id"};
final String where = "tutor_id = ?";
final String[] whereArgs = {String.valueOf(tutorID)};
final String groupBy = null;
final String having = null;
final String orderBy = "module_id";
Cursor c = getDbAdapter().selectRecordsFromDB(table, columns, where, whereArgs, groupBy, having, orderBy);
Этот курсор затем содержит все записи module_id, где этот конкретный преподаватель является преподавателем, что я хочу, чтобы получить всесведения о модуле, которые хранятся в другой таблице.
Каков наилучший способ получить их, использовать ли значения из курсора для создания действительно длинного необработанного SQL-запроса в цикле, добавляя module_id, в то время каку курсора есть следующая запись, или я должен отказаться от использования курсора и написать SQL-запрос вдоль строк
SELECT module_title, module_credit, module_xyz
FROM modules
WHERE module_id IN
(
SELECT module_id
FROM module_tutor
WHERE tutor_id = ?
)
, если последний предпочтителен, хотя я бы предпочел этого избежать, поскольку моя структура таблицы могла быэто изменение точки и первое решение проще в управлении, как мне реализовать это в SQLite - как только у меня будет внутренняя база данных для моего приложения, я намереваюсь выставить ее через провайдера контента, поэтому решение с курсором снова кажется предпочтительным, как мне кажетсянемного ближе к тому, как я, наконец, в конечном итоге тыспой базу данных в моем приложении.