我正在创建一个应用程序并需要一个数据库。该数据库包含位置表和兴趣点表。
这是一对多的关系。
一个位置有几个兴趣点。
现在我尝试用 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);