代码之家  ›  专栏  ›  技术社区  ›  Damovisa

寻找一种利用内部数据库表扩展外部数据的好方法

  •  1
  • Damovisa  · 技术社区  · 14 年前

    我有一个应用程序从第三方接收它的大部分数据。其中一组数据是事务列表。我无法写入此服务,但我想向该数据添加更多信息,以便在我自己的应用程序中使用。我打算用一个包含扩展信息的SQL表来实现这一点。

    问题是第三方数据不会从其端返回记录标识符。这意味着我不能使用第三方主键作为附加数据的主键。如果可以的话,我显然只需要使用这个密钥并存储扩展数据。

    例如,返回的数据是:

    -----------------------------------------------------------------------------
    | Client Id | Transaction Date | Transaction Amount | Description | Balance |
    -----------------------------------------------------------------------------
    

    客户机ID在这个表中不是唯一的,但是,有一个保证,在其整体中获取的其余信息是唯一的。

    我想添加其他数据。例如:

    -------------------------------------------------
    | ... | Transaction Category | Hide Transaction |
    -------------------------------------------------
    

    我已经玩弄了使用主键的想法,主键是所有其他信息的散列,但据我所见,查询该数据会非常低效。例如,我可能希望在屏幕上显示100个事务。这需要从第三方检索数据,散列每个记录,并使用这100个键之一查询本地数据库中的所有数据。

    有人有什么建议吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Paul Sasik    14 年前

    我想你回答了你自己的问题:

    有一个保证 这些信息 整体性,是独一无二的。

    把这些字段合成 primary key . 你的where条款比正常情况要复杂一点,但这是权衡。

    您还可以创建一个代理键,如果您想让查询变得简单一点,它可以与复合键一起使用。