1

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

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

例如,返回的数据是:

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

客户 ID 在此表中不是唯一的,但是可以保证其余信息(整体而言)是唯一的。

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

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

我玩弄了使用作为所有其他信息散列的主键的想法,但据我所见,查询该数据的效率非常低。例如,我可能想在屏幕上显示 100 笔交易。这将需要从第三方检索数据,对每条记录进行散列处理,并使用这 100 个键之一查询我的本地数据库以获取所有数据。

有没有人有什么建议?

4

1 回答 1

1

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

可以保证其余的信息,从整体上看,是独一无二的。

只需将这些字段变成复合主键即可。您的 WHERE 子句将比正常情况复杂一些,但这是权衡。

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

于 2010-08-06T03:39:36.060 回答