首先,欢迎来到 Stack Overflow。 SQLite 适用于少量数据,是对数据库管理的一个很好的介绍。
您应该花一些时间特别了解数据库设计和规范化,但您需要创建一个包含选项的表,另一个包含用户的表,以及第三个包含用户选择的选项的表。
create table user (user_id integer, name varhcar, other varchar);
create table options (option_id integer, display_text varchar);
create table options_chosen ( user_id integer, option_id integer);
insert into user values (1, 'Charles Aznavour', 'Famous French singer');
insert into options values (1, 'Rock');
insert into options values (2, 'Pop');
insert into options values (3, 'Hip Hop');
insert into options_chosen values (1, 2);
insert into options_chosen values (1, 3);
然后您可以按如下方式访问数据:
select usr.name, opt.display_text options_chosen
from user usr
inner join options_chosen chn
on chn.user_id = usr.user_id
inner join options opt
on opt.option_id = chn.option_id;
您可以一次将多行插入 SQLite,如下所示:
insert into options_chosen values (1, 2), (1, 3), (2, 1), (2, 2), <...> ;
在 Dart 中,您将要使用 Batch 插入多条记录。
查看this example,根据需要修改如下:
batch = db.batch();
batch.rawInsert('INSERT INTO options_chosen VALUES (?, ?)', ['item1', 'item2']);
batch.insert('options_chosen ', {'user_id': 1, 'option_id': 2});
results = await batch.commit();