【问题标题】:Efficient way to compare data between the sql database and a json response比较sql数据库和json响应之间数据的有效方法
【发布时间】:2019-11-22 12:57:39
【问题描述】:

我有一个 codeigniter 服务器,它响应如下数据:

{
    success: true,
    {
        data: {
                  {
                       name: 'Elizabeth Gusto',
                       title: 'Marketing/sales'
                  },

                  {
                       name: 'Martin Pablo',
                       title: 'Field Sales'
                  },

                  {
                       name: 'Brian Carey',
                       title: 'In House I.T.'
                  },
                  ...
              }
      }
}

我将这些数据直接保存到我正在开发的应用程序中的 sql 数据库中,其中包含列:

ID, Name, Title,...

ID 只是一个主键,设置为AUTO INCREMENT

注意:我在 Flutter 中使用 sqflite 插件来保存数据。但工作方式与 SQL 查询完全一样。

如何比较从服务器收到的所有数据与 sql 数据库中可用的数据?即服务器的响应是否与我存储在 sql 中的内容匹配?

【问题讨论】:

    标签: android sql sqlite codeigniter


    【解决方案1】:

    首先,您应该定义识别传入记录的内容。在您的示例中,ID 不是传入值的一部分,因此您显然不能使用它。

    • 例如您可以定义仅名称标识一条记录。然后,您可以在数据库中查询此类记录并比较所有剩余字段。
    • 或者您可以定义所有属性都标识一条记录,然后您可以通过匹配查询中的所有数据来查找它。

    接下来要做什么取决于您的要求。例如。更新找到的条目或创建新条目,或者您甚至可能想要删除旧记录。但你应该明白了。

    为了加快速度,您应该为要搜索的列(标识记录的列)创建一个复合数据库索引(可能使用多个列)。

    为了进一步加快处理速度并减少数据库和程序之间的往返次数,请使用准备好的语句和批处理语句。

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多