Flutter SQFlite настройка отношения один ко многим - PullRequest
0 голосов
/ 05 июня 2019

Я создаю приложение и мне нужна база данных. База данных содержит таблицу местоположений и таблицу точек интереса.
Это отношение один ко многим.
Местоположение имеет несколько точек интереса.
Теперь я попытался сделать это отношения в трепет с sqflite, но не удалось. Я уже пытался добавить внешний ключ, но он не работал.
Это только самая важная часть кода.

static final String locationTable = 'location';
static final String columnLocationId = 'id';
static final String columnLocationTitle = 'title';  

static final String pointOfInterestTable = 'point_of_interest';
static final String columnPointOfInterestId = 'id';
static final String columnPointOfInterestTitle = 'title';

static final String createTableLocation = 'CREATE TABLE $locationTable('
    '$columnLocationId INTEGER PRIMARY KEY AUTOINCREMENT,'
    '$columnLocationTitle TEXT NOT NULL)';

static final String createTableLocation = 'CREATE TABLE $pointOfInterestTable('
    '$columnPointOfInterestId INTEGER PRIMARY KEY AUTOINCREMENT,'
    '$columnPointOfInterestTitle TEXT NOT NULL)';

Future<List> getPointOfInterestsOfLocations(int id) async {
    final db = await this.db;
    final maps = await db.query(
      locationTable,
      where: '$columnLocationId = ?',
      whereArgs: [id],
    );
    return maps.toList();
}

И это строка кода для загрузки его в список:

List pointOfViews = await _pointOfViewDb.getPointOfInterestsOfLocations(id: location.id);
...