Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 如何在sqflite中存储对象列表?_Sqlite_Flutter_Dart_Persistence_Sqflite - Fatal编程技术网

Sqlite 如何在sqflite中存储对象列表?

Sqlite 如何在sqflite中存储对象列表?,sqlite,flutter,dart,persistence,sqflite,Sqlite,Flutter,Dart,Persistence,Sqflite,我想使用来存储我的对象。我读了一些,并且了解了它。到目前为止我什么都懂。但它们都没有涵盖我的用例: 我有一个名为Foo的类。该类在一些基本字段旁边保存类Bar的对象栏只有基本字段。此外,Foo还有一个类型为Baz的对象列表Baz也只有基本字段 class-Foo{ //简单字段 字符串id; 酒吧; 名单; } 分类栏{ //只有基本字段 字符串id; } Baz类{ //只有基本字段 字符串id; } 我想将bar对象与数据库中的foo对象相连接,并将其与bazs对象相连接。我该怎么做?最好

我想使用来存储我的对象。我读了一些,并且了解了它。到目前为止我什么都懂。但它们都没有涵盖我的用例:

我有一个名为
Foo
的类。该类在一些基本字段旁边保存类
Bar
的对象<代码>栏只有基本字段。此外,
Foo
还有一个类型为
Baz
的对象列表
Baz
也只有基本字段

class-Foo{
//简单字段
字符串id;
酒吧;
名单;
}
分类栏{
//只有基本字段
字符串id;
}
Baz类{
//只有基本字段
字符串id;
}
我想将
bar
对象与数据库中的
foo
对象相连接,并将其与
bazs
对象相连接。我该怎么做?最好的办法是什么

我不是很有经验。我知道SELECT、WHERE、ORDERBY等的含义,但我的知识并没有得到进一步的了解

我发现了堆栈溢出,但我想知道将所有值存储为JSON是否真的有效。如果JSON变得非常大,会发生什么

目前我唯一的想法是将
bar
对象的
id
存储为
foo
对象中的一个字段,反之亦然
foo
还可以保存
baz
对象的
id
s列表。或者每个
baz
对象都持有
foo
对象的
id
。这是一个好的解决方案吗


是否可以让
sqflite
处理对象之间的关系?

您需要创建3个表:

  • 福斯: [字段]:
    • id
  • 酒吧: [字段]:
    • foo\u id
      :指向
      foo的
      id
      字段的外键
    • 酒吧id
      :哪个是酒吧id
  • 巴兹: [字段]:
    • foo\u id
      :指向
      foo的
      id
      字段的外键
    • baz_id
      :哪个是baz的id
    现在让我们假设您想要获取一条Id为3的
    Foo
    记录以及
    bar
    bazs

  • 获取foo记录:
  • 获取
    foo_id=3的条形图
  • 获取baz,其中
    foo_id=3

  • 如果您使用
    moor
    包来实现sqllite DB

    您需要创建3个表:

  • 福斯: [字段]:
    • id
  • 酒吧: [字段]:
    • foo\u id
      :指向
      foo的
      id
      字段的外键
    • 酒吧id
      :哪个是酒吧id
  • 巴兹: [字段]:
    • foo\u id
      :指向
      foo的
      id
      字段的外键
    • baz_id
      :哪个是baz的id
    现在让我们假设您想要获取一条Id为3的
    Foo
    记录以及
    bar
    bazs

  • 获取foo记录:
  • 获取
    foo_id=3的条形图
  • 获取baz,其中
    foo_id=3
  • 如果您使用
    moor
    包来实现sqllite数据库,则会更容易

    SELECT * FROM foo WHERE id = 3;
    
    SELECT bar_id
    FROM bars
    INNER JOIN Foo on B.id = bars.foo_id;
    
    SELECT baz_id
    FROM bazs
    INNER JOIN Foo on B.id = bazs.foo_id;