You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL数据库中随时间演化对象的建模与查询方案问询

PostgreSQL中随时间演化对象的建模问题

需求说明

  • 对象拥有name、colour、size等属性,示例结构:
{
   "name": "Foo",
   "colour": "red",
   "size": 17
}
  • 仅通过API接收描述对象演化的差分补丁(可将更新转换为补丁形式),补丁示例:
{
   "start": "2025-01-01",
   "patch": {
       "path": "/name",
       "op": "replace",
       "value": "Bar"
   }
}
  • 补丁接收顺序无固定性,可能先收到未来生效的补丁(如2025年),后收到历史生效的补丁(如2023年,当前为2024年),需支持回溯修正对象的历史状态。
  • 需支持两类核心查询:
    • 查询指定ID对象在某一keydate的状态;
    • 查询某一keydate下满足特定WHERE条件的对象(例如:2024年size>10的所有对象)。

候选存储方案对比

方案A:存储对象在每个时间点的完整状态

  • ✅ 任意时间点的状态查询效率高,实现直接
  • ❌ 收到历史补丁后,需重新计算并更新该时间点之后所有相关的完整状态记录,维护成本高

方案B:存储对象初始/终态+带生效时间的差分补丁

  • ❌ 仅能直接查询初始或终态,指定时间点的状态需在应用层通过补丁回溯计算,查询性能差
  • ✅ 存储无冗余,新增补丁仅需插入单条记录,维护成本低

疑问

我倾向于方案A,但实现复杂度较高,希望了解:

  • 这类问题的通用名称是什么?
  • 是否有现成工具/库可以解决该问题?优先支持.NET EF Core,不限技术栈。

内容的提问来源于stack exchange,提问作者koks der drache

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:22:09