1

エンティティの属性の現在の値は、そのエンティティのEntityHistoryテーブルstatusの最新のエントリとして照会できます。つまり、

Entities (id) <- EntityHistory (timestamp, entity_id, value)

N+1 クエリを実行することなく、すべてのエンティティの履歴テーブルから現在の値を熱心にロードする効率的な SQLALchemy 式を作成するにはどうすればよいですか?

モデルのプロパティを書き込もうとしましたが、これを繰り返すと (N+1) ごとにクエリが生成されます。私の知る限り、サブクエリなしでこれを解決する方法はありませんが、データベースではまだ非効率的です。

サンプルEntityHistoryデータ:

timestamp |entity_id| value
==========|=========|======
     15:00|        1|     x
     15:01|        1|     y
     15:02|        2|     x
     15:03|        2|     y
     15:04|        1|     z

したがって、エンティティ 1 の現在の値は にzなり、エンティティ 2 の現在の値は になりますy。バッキング データベースは Postgres です。

4

1 に答える 1