从多个1:N关系分页数据

时间:2019-01-22 06:12:16

标签: mysql sequelize.js

背景

我正在开发一个具有主表(Accounts)和多个表的应用程序,这些表包含不同的交易记录(DepositsWithdrawalsTransfers等。 ),每个帐户可以针对每种交易类型具有多个记录,即,帐户表与每种交易类型表之间存在1:N的关系。这些表的结构确实有所不同,这也不值得。

我目前正在使用Sequelize.js和MySQL,如果可能的话,我希望坚持对Sequelize.js友好的解决方案。我可以根据需要随意更改数据库模式。

问题

我想显示一个帐户进行的所有交易类型的统一分页视图。鉴于系统中会有大量事务,我该如何最好地创建这种视图?

我发现的潜在解决方案

  1. 分别查询每种类型的交易,将这些记录一起添加到应用程序代码中,并基于此(我正在做的)限制/抵销。

  2. 我认为一种解决方案是在表上进行巨大的UNION并从中选择记录,但是我对此的性能感到担忧,并且不得不创建一个长的自定义SQL查询以确保表格的列匹配。

  3. 另一种方法可能是创建一个Transactions表,该表包含对其他表的引用以及时间戳,但这似乎仍然很昂贵,因为我不得不分别获取实际记录。

0 个答案:

没有答案